QDB2
-- IBM DB2 версии не ниже 7.1;
QIBASE
-- Borland InterBase;
QMYSQL
-- MySQL;
QOCI
-- Oracle;
QODBC
-- ODBC (в том числе Microsoft SQL Server);
QPSQL
-- PostgreSQL;
QSQLITE
-- SQLite версии не ниже 3;
QSQLITE2
-- SQLite версии 2;
QTDS
-- Sybase Adaptive Server. В Qt4 Open Source Edition отсутствует поддержка коммерческих СУБД Oracle, Sybase и DB2, т.к. драйверы для них распространяются под лицензией, не совместимой с GPL.
QSQLITE
. Чтобы подключить поддержку остальных СУБД,
надо при запуске configure
указать параметры
-qt-sql-mysql
, -qt-sql-psql
,
-qt-sql-odbc
, -qt-sql-ibase
для компиляции
соответствующих статических библиотек или -plugin-sql-mysql
,
-plugin-sql-psql
, -plugin-sql-odbc
,
-plugin-sql-ibase
для компиляции динамических библиотек.
Компилятору и компоновщику потребуются заголовочные файлы и библиотеки,
поставляемые вместе с соответствующими СУБД. Поэтому при запуске
configure
обычно требуется указать параметр
-Iпуть_к_h-файлам
и -Lпуть_к_lib
. В результате
компиляции в каталоге lib
появится нужная динамическая библиотека.
Чтобы узнать, драйверы каких СУБД уже установлены, можно открыть
демонстрационную программу demos/sqlbrowser
.
Если библиотека Qt уже скомпилирована, то можно просто зайти в каталог
qt/src/plugins/sqldrivers/НужныйДрайвер
и выполнить компиляцию
находящегося там проекта *.pro
.
Например, для сборки драйвера ODBC в Windows:
При использовании Visual C++ последняя команда, разумеется,
cd %QTDIR%\src\plugins\sqldrivers\odbc
qmake -o Makefile odbc.pro
mingw32-make
nmake
.
В Linux: cd $QTDIR/src/plugins/sqldrivers/odbc
qmake "INCLUDEPATH+=/usr/local/unixODBC/include"
"LIBS+=-L/usr/local/unixODBC/lib -lodbc"
make
Для сборки драйвера PostgreSQL в Windows:
(все пути не должны содержать пробелов).
cd %QTDIR%\src\plugins\sqldrivers\psql
qmake -o Makefile "INCLUDEPATH+=C:\psql\include"
"LIBS+=C:\psql\lib\ms\libpq.a" psql.pro
mingw32-make
В Linux:
Заметим, что драйвер cd $QTDIR/src/plugins/sqldrivers/psql
qmake -o Makefile "INCLUDEPATH+=/usr/include/pgsql"
"LIBS+=-L/usr/lib -lpq" psql.pro
make
QPSQL
может работать только с
кодировкой utf-8
.
Для сборки драйвера MySQL в Windows:
(все пути не должны содержать пробелов). Для компиляции с помощью
Microsoft Visual C++ вместо cd %QTDIR%\src\plugins\sqldrivers\mysql
qmake -o Makefile "INCLUDEPATH+=C:\MySQL\include"
"LIBS+=C:\MySQL\lib\opt\libmysql.a" mysql.pro
mingw32-make
libmysql.a
надо указать
libmysql.lib
.
В Linux: cd $QTDIR/src/plugins/sqldrivers/mysql
qmake -o Makefile "INCLUDEPATH+=/usr/local/include"
"LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro
make
Результат компиляции (динамические библиотеки) помещается в каталог
plugins/sqldrivers
.
Обычно для Windows поставляются библиотеки *.lib
, рассчитанные
на использование компилятора Microsoft. Поскольку свободная версия Qt4 для
Windows поддерживает только MinGW, то перед сборкой SQL-драйвера придётся
сначала сгенерировать def
-файл, например:
(утилита cd c:\mysql\lib\opt
reimp -d libmysql.lib
reimp
поставляется вместе с MSYS), а затем
сформировать библиотеку *.a
: dlltool -d libmysql.def -l libmysql.a libmysql.dll -k
Перед выполнением приложений Qt, если используются SQL-драйверы,
скомпилированные в виде динамических библиотек, требуется позаботиться о том,
чтобы сами эти библиотеки, а также, в свою очредь, используемые ими библиотеки,
поставляемые с соответствующими СУБД, были доступны по стандартным путям поиска.
В окончательных релизах, поставляемых пользователю, Qt-драйверы
qsql*
лучше всего размещать в подкаталоге
./plugins/sqldrivers
, а используемые ими библиотеки -- либо в
каталоге самой программы, либо в стандартном каталоге
Windows/system32
(для системы Windows) или usr/lib
(для Linux).