Qt使用ODBC连接到MSSQL、SQLServer

Qt连接到MSSQL,使用ODBC驱动

首先确保系统已经安装了odbc数据源
读取ini配置文件 https://www.cnblogs.com/mc-r/p/15830181.html

示例:


#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);
    }

}
posted @ 2022-01-24 15:55  看不见的R  阅读(494)  评论(0编辑  收藏  举报