您的位置:首页 > 博客中心 > 数据库 >

Qt通过ODBC连接SQL Server2008实践总结

时间:2022-03-10 17:49

Qt连接数据库的方式很多,这里说明一种最常用也是最实用的方式,因为这种方式在Windows上开发使用起来非常方便,并且也是远程连接数据库所需要用到的方式。

 

前提工作:

在Win7下安装了SQL Server 2008,并在SQL Server中创建了数据库MyDB。

 

Qt通过ODBC连接SQL Server 2008概述:

Qt通过ODBC连接数据库时,使用的数据库名不是直接写入数据库名称,而是DSN名。

 

关于DSN的简要介绍:

原名:Data Source Name
  中文名:源名称
DSN为定义了一个确定的和必须用到的ODBC驱动程序。每个ODBC定义为该驱动程序支持的一个数据库创建DSN需要的信息。就是说安装ODBC驱动程序以及创建一个数据库之后,必须创建一个DSN。

 

DSN名的使用方式有两种:

1、在操作系统中配置DSN;

2、在Qt程序代码中采用DSN连接字符串直接连接ODBC数据库。

 

下面详细介绍在操作系统中配置DSN方式下连接SQL Server 2008的操作过程

 

在操作系统中配置DSN

1、在Win7系统中配置DSN详细图解

2、配置好DSN后就可以在Qt程序中使用此DSN连接数据库了:

其中main.cpp代码如下:

#include <QtGui/QApplication>

#include "dialog.h"
#include <QSqlDatabase>
#include <QStringList>
#include <QDebug>
#include <QMessageBox>
#include <QtSql>
#include <QSqlQuery>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Dialog w;
    w.show();
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    qDebug()<<"ODBC driver?"<<db.isValid();
    QString dsn = QString::fromLocal8Bit("QTDSN");
    db.setHostName("127.0.0.1");
    db.setDatabaseName(dsn);
    db.setUserName("sa");
    db.setPassword("198811200");
    if(!db.open())
    {
        qDebug()<<db.lastError().text();
        QMessageBox::critical(0, QObject::tr("Database error"), db.lastError().text());
        return false;
    }
    else
        qDebug()<<"database open success!";
    QSqlQuery query(db);
    query.exec("select * from student");
    while(query.next())
    {
        //qDebug()<<query.value(0).toString();
        qDebug()<<query.value(1).toString();
        //qDebug()<<query.value(2).toString();
        //qDebug()<<query.value(3).toString();
        //qDebug()<<" ";
    }
    return a.exec();
}

测试输出结果:

ODBC driver? true

database open success!

"李四 "

"王五 "

"赵六 "

"吴莉莉 "

"刘晓红 "

"陈丽芬 "

"正如因 "

"zhu "

 

 

参考:

Qt通过ODBC连接SQL Server2008实践总结,布布扣,bubuko.com

热门排行

今日推荐

热门手游