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

环境:

win7 32vs 2013qt 5.6.0(32 ms)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.dll和qsqlodbcd.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)了。

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐