gpt4 book ai didi

database - Qt ODBC - 无法出错

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:24 24 4
gpt4 key购买 nike

我正在尝试在 Linux 中使用 QT 打开 MS Access 数据库文件。所以,我已经为 qt 安装了 odbc 插件:

sudo apt-get install libqt4-sql-odbc

现在qt4/plugins/sqldrivers目录下有2个文件:libqodbc.so & libqsqlite.so

所以,我尝试在我的项目中使用 ODBC 插件。有连接功能:

bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=/home/user/personal_base.mdb");
if (!db.open()) {
QMessageBox::warning(0, QObject::tr("Database Error"), db.lastError().text());
return false;
}
return true;
}

但是应用程序显示错误:

[unixODBC][Driver Manager]Data source name not found, and no default driver specified QODBC3: Unale to connect 

我该如何解决?

最佳答案

对 setDatabaseName 的调用在 ODBC 函数 SQLDriverConnect 中结束。 SQLDriverConnect 定义了许多属性,您可以设置这些属性来声明您正在使用哪个 ODBC 驱动程序以及如何使用它,例如 DRIVER。您告诉 unixODBC 驱动程序管理器加载驱动程序“Microsoft Access Driver (*.mdb, *.accdb)”,但它找不到该驱动程序。

在 unixODBC 中,驱动程序通常在 odbcinst.ini 文件中定义,您通常可以使用命令“odbcinst -j”找到该文件。你会发现 this article有用。

您极不可能拥有如您所示命名的 Microsoft Access 驱动程序,因为这通常是仅在 Windows 上可用的 MS Access 驱动程序的名称。

据我所知,只有两种方法可以使用 ODBC 直接从 Linux 访问 MS Access 数据库 1) mdbtools (旧且不完整但免费)2) Easysoft MS Access ODBC Driver这是一个完整的 ODBC 驱动程序,但不是免费的。

关于database - Qt ODBC - 无法出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15462644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com