我想在Linux中用QT打开MS Access数据库文件。在Linux中打开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
现在怎么能我用Qt打开mdb-file Linux?
在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
有什么物?
看来Microsoft Access可能不是跨平台数据库的最佳解决方案。如果你想用你的应用程序分发你的数据库,你应该看看SQLite。否则,请使用MySQL或Oracle等服务器。 – 2013-03-22 18:02:32
你是对的。但是,很抱歉地说,我不能在我的问题中使用任何其他解决方案。 – 2013-03-22 18:54:38