上文介绍可以在linux通过QTDS连接MSSQL,linux下可以,windows下行不行呢? Sybase,MSSQL都是基于TDS协议,必然可以在windows下通过TDS连接数据库
一. 编译TDS插件
windows下只依赖ntwdblib.lib(MSSQL自带)这个库,不需要安装Sybase,可直接编译
cd %QTDIR%\src\plugins\sqldrivers\tds qmake "LIBS+=NTWDBLIB.LIB" tds.pro nmake
二. 测试连接
// 注: 此处与linux编码不同, 不能以数据源名称作为参数 QSqlDatabase db=QSqlDatabase::addDatabase("QTDS"); db.setDatabaseName("sqlscada"); db.setHostName("192.168.10.12\\SQLEXPRESS"); // 主机名,由于使用是免费版,必须加上\\SQLEXPRESS后缀.付费版本不用,本文连接的是MSSQL2005 db.setPort(3304); db.setUserName("sa"); db.setPassword("scada"); if(!db.open()) { qDebug("=== %s",qPrintable(db.lastError().text())); }else { qDebug("==== ok"); }
运行截图: