如何在Ubuntu下用QODBC连接SqlServer

weixin_38069804 2019-09-19 06:43:29
大家好,我最近遇到一个问题,想请教一下大家。环境:Ubuntu 11.04 ,Qt4.7.4先在Ubuntu下编译了odbc,得到libqsqlodbc.so,放到sqldrivers文件夹后,用QSqlDataBase类去连接,可以检测到QODBC驱动。 代码如下:    db =QSqlDatabase::addDatabase("QODBC","ODBC");  db.setHostName("192.168.168.45"); //如果dsn中已经含有SERVER,可以省略此句    QString dsn = QString::fromLocal8Bit                  ("DRIVER={SQL SERVER};SERVER=192.168.168.45;DATABASE=test;uid=test;pwd=123");    //如果已经设定DSN,可以写为QString::fromLocal8Bit("SQLSERVER_DSN")    db.setDatabaseName(dsn);    //即使dsn中已经设置了UID和PASSWD,仍然需要执行setUserName和setPassword的步骤    db.setUserName("test");    db.setPassword("123");    if(!db.open()) {        qDebug()<< "Cannot open database-Sql Server"  \                <<"Unable to establish a database connection." \               << db.lastError().text();        return false;    } 编译能过,调试时会报如下错误: /home/share/database-build-desktop/database: symbol lookup error: /usr/lib/qt4/plugins/sqldrivers/libqsqlodbc.so: undefined symbol: SQLAllocHandle 问题出现了: 看错误是QODBC编译有问题,我是直接用QtCreator编译Qt自带的odbc源码得到的libqsqlodbc.so,是不是这里不能这样编译?(如果需要像编译Mysql驱动一样,要在命令行下,而且加如"INCLUDEPATH+=..."之类的参数,那么参数应该如何写呢?) 另外,在Ubuntu下连接SqlServer的DSN串是这样写的吗? 谢谢!
...全文
244 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧