Quote from: infoclipper at Aug 18, 2005, 11:09 PM
So I assume, then, that we want to be actively converting all the mysql calls to this, right?
Yes, absolutely, IMO. If we want to support other DB environments in the future, we must wrap all of our SQL interaction so that it can become independent of the syntax and rules governing the various DB platforms.
And while we’re on the subject, I would also like to see us architect the DB abstraction layer so that we could call the utility functions directly (via DBAPI) as we can now, as well as create persistent objects by simply creating a class that extends a base persistentObject class. This would simplify code maintenance, make the code cleaner and more readable, as well as provide a facility for contributing developers and end-users to easily create persistent objects (via coding classes directly, or even via a wizard-like interface that might generate such a class file) they can use within the framework. From there we can take it to the next level, adding DB caching features, true transaction handling, advanced searching capabilities not dependent on the DB platform, and true separation of business logic from persistence logic (by applying Memento and/or Delegate design patterns). That means optimized persistence handlers for each major database as we need it (or advanced users could add them as well, without disturbing the core logic of our product).