我正在尝试在 Linux 中使用 QT 打开 MS Access 数据库文件。
所以,我已经安装了带有 unixODBC 的 Easysoft MS Access ODBC 驱动程序。有我的 odbc.ini 文件:
[Easysoft ODBC-ACCESS]
Description = MS Acess db driver
Driver = /usr/local/easysoft/access/lib/libesmdb.so
Setup = /usr/local/easysoft/access/lib/libesmdbS.so
并且有 odbcinst.ini 文件:
[ACCESS_SAMPLE]
Driver = Easysoft ODBC-ACCESS
mdbfile = /home/user/personal_base.mdb
另外,我已经为 qt 安装了 odbc 插件:
sudo apt-get install libqt4-sql-odbc
现在如何在Linux中使用 Qt 打开 mdb 文件?
在 MS Windows 中,我这样做:
bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=C:/personal_base.mdb");
if (!db.open()) {
QMessageBox::warning(0, QObject::tr("Database Error"), db.lastError().text());
return false;
}
return true;
}
我尝试将 db.setDataBaseName 更改为
...
db.setDatabaseName("Driver={Easysoft ODBC-ACCESS};DSN='ACCESS_SAMPLE'");
...
但它返回一个错误:
[unixODBC][Driver Manager]Data source name not found, and no default driver specified QODBC3: Unale to connect
怎么了?