已经生成odbc库文件了,但是运行程序报错,如下图

源代码就是一段测试数据库连接的程序。本人linux初学者,求指导详细解决方法。
已经生成odbc库文件了,但是运行程序报错,如下图

关注🕖上午好,题主!目前:🟢[在线]
📢参考通义千问、由郭老师整理提供!
📣今日诗号:二十四桥明月夜,玉人何处教吹箫。
要解决Linux下使用Qt连接SQL Server的问题,你需要确保几个关键点得到正确配置和安装:
安装必要的库:
unixODBC 和 unixODBC-dev 是必须的,它们提供了ODBC接口。freetds 是一个开源库,它提供了与SQL Server和其他数据库的兼容性。确保安装了最新版本。unixODBC 配置文件需要正确配置,指向freetds。配置ODBC:
/etc/odbcinst.ini文件中正确配置了SQL Server驱动。示例如下:
[FreeTDS]
Description=FreeTDS Driver for Linux
Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
UsageCount=1
/etc/odbc.ini 文件也需要配置以指向你的SQL Server实例。示例如下:
[MSSQLSERVER]
Description=Test DSN
Driver=FreeTDS
TDS_Version=7.4
Server=myserver.example.com
Port=1433
Database=mydatabase
Qt配置:
QString dsn = "MSSQLSERVER"; // 对应/etc/odbc.ini中的DSN名称
QString dbUser = "yourusername";
QString dbPassword = "yourpassword";
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName(QString("DRIVER={FreeTDS};DSN=%1;UID=%2;PWD=%3").arg(dsn).arg(dbUser).arg(dbPassword));
if (!db.open()) {
qDebug() << "Error: connection with database failed" << db.lastError();
} else {
qDebug() << "Database: connection ok";
}
检查防火墙和网络配置:
错误排查:
通过以上步骤,你应该能够解决Linux下使用Qt连接SQL Server的问题。如果仍然有问题,考虑查看具体的错误消息,这通常会提供解决问题的重要线索。此外,确保所有软件都是最新的,因为旧版本可能会有已知的问题。