SQL Server学习记忆——编译SQL Server驱动 QODBC(四)

前言

前面铺垫了很久,今天终于要利用Qt库连接SQL Server 2008 了。但是发现Qt5.6.0不具有QODBC驱动,因此使用此驱动需要根据自己的编译器版本自行编译,博客中详细介绍了如何利用VS2013编译64位的Qt5.6的QODBC驱动,其它版本过程类似。

QtSql模块介绍

QtSql模块提供了与平台以及数据库无关的访问SQL数据库的接口。要想连接数据,还需要SQL数据库驱动,Qt的SQL驱动独立于数据库。Qt中包含的数据库驱动有:QDB2(IBM),QIBASE (Borland InterBase),QMYSQL(MySQL),QODBC(微软)等等,但并不是所有的驱动都提供给了Qt的开源版本。要想知道当前的Qt版本是否支持自己用的DBMS,可以用下面的代码查看当前Qt版本所具有的数据库驱动。

查看现有驱动

#include 
#include 
#include 
#include 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    qDebug() << "Available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
        qDebug() << driver;
    return a.exec();
}

运行结果:
SQL Server学习记忆——编译SQL Server驱动 QODBC(四)_第1张图片
发现并没有我们所需要的QODBC驱动,C:\Qt\Qt5.6.0\5.6\msvc2013_64\plugins\sqldrivers中同样没有,也就是说明要自己编译QODBC驱动了。
如果没有QODBC驱动,在Qt程序中添加如下代码进行测试,提示如下:

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
qDebug() << "ODBC driver?" << db.isValid();

SQL Server学习记忆——编译SQL Server驱动 QODBC(四)_第2张图片

编译QODBC驱动

(1)在Qt官网下载源码文件:qt-everywhere-opensource-src-5.6.0.zip并解压。odbc目录内容如下:
SQL Server学习记忆——编译SQL Server驱动 QODBC(四)_第3张图片
(2)打开VS,命令提示,把编译环境更改位64位
SQL Server学习记忆——编译SQL Server驱动 QODBC(四)_第4张图片
在窗口中输入cd /d C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64
输入:vcvars64.bat
输入:qmake odbc.pro
输入:nmake
(3)编译结果
SQL Server学习记忆——编译SQL Server驱动 QODBC(四)_第5张图片
编译出的驱动文件,将qsqlodbcd.dll,qsqlodbcd.pdb和qsqlodbc.dll拷至C:\Qt\Qt5.6.0\5.6\msvc2013_64\plugins\sqldrivers。
SQL Server学习记忆——编译SQL Server驱动 QODBC(四)_第6张图片

测试

SQL Server学习记忆——编译SQL Server驱动 QODBC(四)_第7张图片

结语

至此,QODBC驱动编译结束,整个编译过程大概2分钟。下一步将连接数据库并操作。

你可能感兴趣的:(数据库,qt5,sql,server,2008,qt,数据库,64位,QODBC)