Qt使用ODBC连接到MSSQL、SQLServer
Qt连接到MSSQL,使用ODBC驱动
首先确保系统已经安装了odbc数据源
读取ini配置文件
示例:
#include "widget.h"
#include "ui_widget.h"
#define DEBUG
// ---> 配置文件地址
#define cfgpath "E:/Projects/Qt/BLFormPrinter/配置文件/config.ini"
void Widget::connectDB()
{
// ---> 读取配置文件
QSettings * cfg = new QSettings(cfgpath,QSettings::IniFormat);
QString ipaddr = cfg->value("SSNC2/ServerName").toString();
QString dbname = "repo_data";
QString dbusr = cfg->value("SSNC2/LogId").toString();
QString dbpass = cfg->value("SSNC2/LogPass").toString();
#ifdef DEBUG
cout << "ip地址: " << ipaddr;
cout << "db名称: " << dbname;
cout << "用户名: " << dbusr;
cout << "密码: " << dbpass;
#endif
cfg->disconnect();
delete cfg;
// ---> 连接到数据库 这里连接的sqlserver2008R2 express版, 所以要添加\sqlexpress
dbc = new QSqlDatabase(QSqlDatabase::addDatabase("QODBC3", "repo"));
QString dsn = QString("DRIVER={SQL SERVER};SERVER=%1\\sqlexpress;DATABASE=%2").arg(ipaddr).arg(dbname);
dbc->setDatabaseName(dsn);
dbc->setUserName(dbusr);
dbc->setPassword(dbpass);
if(!dbc->open()){
#ifdef DEBUG
cout << "无法连按数据库";
cout << dsn;
cout << dbc->lastError();
#endif
} else {
// ---> 成功连接后,实例化查询对象
qyb = new QSqlQuery(*dbc);
}
}