欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-02 17:27:25
环境: win7 32vs 2013qt 5.6.0(32 ms)qt add in 1.2.5 测试是否支持odbc驱动: qt中sql server的驱动名是odbc(qt5.2连接sqlser...

环境:

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)了。