![]() |
| ||
Classes - Annotated - Tree - Functions - Home - Structure |
The Qt SQL Module uses driver plugins in order to communicate with different database APIs. Since the Qt SQL Module API is database-independent, all database-specific code is contained within these drivers. Several drivers are supplied with Qt and other drivers can be added.
QSqlDatabase is responsible for loading and managing database driver
plugins. When a database is added (see QSqlDatabase::addDatabase()),
the appropriate driver plugin is loaded (using QLibrary).
QSqlDatabase relies on the driver plugin to provide QSqlDriver is an abstract base class which defines the functionality
of a SQL database driver. This includes functions such as
QSqlDriver::open() and QSqlDriver::close(). QSqlDriver is responsible
for connecting to a database, establish the proper environment, etc.
In addition, QSqlDriver can create QSqlQuery objects appropriate for
the particular database API. QSqlDatabase forwards many of its
function calls directly to QSqlDriver which provides the concrete
implementation.
QSqlResult is an abstract base class which defines the functionality
of a SQL database query. This includes statements such as SELECT,
UPDATE, or ALTER TABLE. QSqlResult contains functions such as
QSqlResult::next() and QSqlResult::value(). QSqlResult is responsible
for sending queries to the database, returning result data, etc.
QSqlQuery forwards many of its function calls directly to QSqlResult
which provides the concrete implementation.
QSqlDriver and QSqlResult are closely connected. When implementing a
Qt SQL driver, both of these classes must to be subclassed and the
abstract virtual methods in each class must be implemented.
To implement a Qt SQL driver as a plugin (so that it is recognized and
loaded by the Qt library at runtime), the driver must export a
QSqlDriverFactoryInterface, which is an interface that is capable of
producing QSqlDriver objects (see QSqlDriverFactory::create()). There
are several macros available to assist in creating such a plugin. See
the source from the examples provided with Qt in
QTDIR/src/sql/src for more information.
interfaces for QSqlDriver and
QSqlResult.
Copyright © 2001 Trolltech Trademarks