加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Qt5.6.0(32位)编译SQLServer驱动(ODBC)(vs2013)

发布时间:2020-12-12 13:47:36 所属栏目:MsSql教程 来源:网络整理
导读:环境: win7 64 VS 2013 Qt 5.6.0(32 msvc) Qt add in 1.2.5 测试是否支持ODBC驱动: Qt中SQL Server的驱动名是ODBC(Qt5.2连接SQLServer2008)。 可以到 C:QtQt5.6.05.6msvc2013pluginssqldrivers (改成自己的目录)查看是否有qsqlodbc.dll和qsqlodbcd.

环境:

  • win7 64
  • VS 2013
  • Qt 5.6.0(32 msvc)
  • Qt add in 1.2.5

测试是否支持ODBC驱动:

Qt中SQL Server的驱动名是ODBC(Qt5.2连接SQLServer2008)。
可以到C:QtQt5.6.05.6msvc2013pluginssqldrivers(改成自己的目录)查看是否有qsqlodbc.dll和qsqlodbcd.dll,或者用如下程序进检测:

qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver,drivers)
qDebug() << "t" << driver;
QSqlDatabase dbc = QSqlDatabase::addDatabase("QODBC");
qDebug() << "ODBC driver valid?" << dbc.isValid();

结果:

Available drivers:
         "QSQLITE"
         "QMYSQL"
         "QMYSQL3"
         "QPSQL"
         "QPSQL7"

列表中没有ODBC。

没有ODBC驱动怎么办?

不要怕,可以自己编译ODBC,按照以下几步来:

  • C:QtQt5.6.05.6Srcqtbasesrcpluginssqldriversodbc目录下,打开命令行(按shift+右键),执行qmake odbc.pro
  • C:Program Files (x86)Microsoft Visual Studio 12.0Common7ToolsShortcuts目录下打开VS2013 x86 本机工具命令提示,进入C:QtQt5.6.05.6Srcqtbasesrcpluginssqldriversodbc目录,执行nmake命令
  • C:QtQt5.6.05.6Srcqtbasepluginssqldrivers目录下会生成qsqlodbc.dllqsqlodbcd.dll
  • 将生成的dll拷贝到C:QtQt5.6.05.6msvc2013pluginssqldrivers
  • 完成

注意:

  • 没有Qt源码

    QT5.6 编译SQLServer驱动提示进入C:QtQt5.6.05.6Srcqtbasesrcpluginssqldriversodbc,但是我的C:QtQt5.6.05.6下面只有msvc2013文件夹,没有Src文件夹,该怎么办?

    解决方法:重新安装qt5.6,在选择组件的时候,把Source Coomponents勾选上。

  • vs2013的命令行要用正确

    C:Program Files (x86)Microsoft Visual Studio 12.0Common7ToolsShortcuts有很多的命令行快捷方式,不能乱用。这里编译的是32位的Qt的dll,如果用VS2013 开发人员命令提示进行nmake会提示如下错误:
    “模块计算机类型“x64”与目标计算机类型“X86”冲突”。

重新运行前面提到的程序结果如下:

Available drivers:
         "QSQLITE"
         "QMYSQL"
         "QMYSQL3"
         "QODBC"
         "QODBC3"
         "QPSQL"
         "QPSQL7"

可见已经有SQLServer驱动(ODBC)了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读