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

主要是copy了itsc的文章并参考了一去二三里的内容

环境:

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

测试是否支持ODBC驱动:

Qt中SQL Server的驱动名是ODBC(Qt5.2连接SQLServer2008)。 
可以到C:\Qt\Qt5.6.0\5.6\msvc2013\plugins\sqldrivers(改成自己的目录)查看是否有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:\Qt\Qt5.6.0\5.6\Src\qtbase\src\plugins\sqldrivers\odbc目录下,打开命令行(按shift+右键),执行qmake odbc.pro
  • C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts目录下打开VS2013 x86 本机工具命令提示,进入C:\Qt\Qt5.6.0\5.6\Src\qtbase\src\plugins\sqldrivers\odbc目录,执行nmake命令
  • C:\Qt\Qt5.6.0\5.6\Src\qtbase\plugins\sqldrivers目录下会生成qsqlodbc.dllqsqlodbcd.dll
  • 将生成的dll拷贝到C:\Qt\Qt5.6.0\5.6\msvc2013\plugins\sqldrivers
  • 完成

注意:

  • 没有Qt源码

    QT5.6 编译SQLServer驱动提示进入C:\Qt\Qt5.6.0\5.6\Src\qtbase\src\plugins\sqldrivers\odbc,但是我的C:\Qt\Qt5.6.0\5.6下面只有msvc2013文件夹,没有Src文件夹,该怎么办?

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

  • vs2013的命令行要用正确

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

  • 以上过程除了vs2013本机命令提示的路径外,会用到三个QT下的路径,千万小心不要弄混,我用不同颜色的笔标出来了

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

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

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值