В QT по умолчанию есть следующие драйвера:
Если вы умеете писать драйвера к базам данных, эта статья не для вас...
В ином случае я не знаю другого способа подключения MS Access базы данных кроме как через ODBC.
Будем считать что драйвер у нас уже есть (а он должен быть). Следующим шагом добавляем базу данных в ODBC.
Ну а дальше в Qt всё по стандартной схеме:
В файле проекта:
Ну а в необходимом для вас месте:
В данном случае у меня имя базы в ODBC было MSDB, и расположена она у меня на локальной машине.
P. S. Меня просили рассказать как загрузить изображение из access. Ответ: если это вложение -никак,если нет, сделайте строковое поле, а храните как преобразование в Base64 ...
QDB2 | IBM DB2 (version 7.1 and above) |
QIBASE | Borland InterBase |
QMYSQL | MySQL |
QOCI | Oracle Call Interface Driver |
QODBC | Open Database Connectivity (ODBC) - Microsoft SQL Server and other ODBC-compliant databases |
QPSQL | PostgreSQL (versions 7.3 and above) |
QSQLITE2 | SQLite version 2 |
QSQLITE | SQLite version 3 |
QSYMSQL | SQLite version 3 for Symbian SQL Database |
QTDS | Sybase Adaptive Server Note: obsolete from Qt 4.7 |
Если вы умеете писать драйвера к базам данных, эта статья не для вас...
В ином случае я не знаю другого способа подключения MS Access базы данных кроме как через ODBC.
Будем считать что драйвер у нас уже есть (а он должен быть). Следующим шагом добавляем базу данных в ODBC.
Ну а дальше в Qt всё по стандартной схеме:
В файле проекта:
QT += sql
Ну а в необходимом для вас месте:
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
qDebug() << db.drivers();
db.setHostName("localhost");
db.setDatabaseName("MSDB");
qDebug() << db.open();
В данном случае у меня имя базы в ODBC было MSDB, и расположена она у меня на локальной машине.
P. S. Меня просили рассказать как загрузить изображение из access. Ответ: если это вложение -никак,если нет, сделайте строковое поле, а храните как преобразование в Base64 ...
Можно создать поле OLE и хранить в нем изображение в двоичном виде без Base64
ОтветитьУдалитьКстати можно попробовать подключиться к Access через ADO и QAxContainer
ОтветитьУдалить