воскресенье, 18 марта 2012 г.

Подключение к Qt базы данных от MS Access через ODBC

В QT по умолчанию есть следующие драйвера:


QDB2IBM DB2 (version 7.1 and above)
QIBASEBorland InterBase
QMYSQLMySQL
QOCIOracle Call Interface Driver
QODBCOpen Database Connectivity (ODBC) - Microsoft SQL Server and other ODBC-compliant databases
QPSQLPostgreSQL (versions 7.3 and above)
QSQLITE2SQLite version 2
QSQLITESQLite version 3
QSYMSQLSQLite version 3 for Symbian SQL Database
QTDSSybase 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 ...

2 комментария:

  1. Можно создать поле OLE и хранить в нем изображение в двоичном виде без Base64

    ОтветитьУдалить
  2. Кстати можно попробовать подключиться к Access через ADO и QAxContainer

    ОтветитьУдалить