Qt连接SQL Server 2014数据库

11 篇文章 0 订阅

Qt连接SQL Server 2014数据库

1. 建立目标数据库

连接数据库之前,需先在SQL Server中建立一个目标数据库,建立数据库和添加表的步骤这里不详述。

如建立一个名为DataBase的数据库,其中有heart1表、heart2表和heartHD三个表。这里使用的是数据库版本为 SQL Server 2014 R2

 

2. 配置数据库数据源

在配置数据源之前,要确保数据库1433号端口已打开,1433端口是SQL Server的默认端口,SQL Server服务使用两个端口:TCP-1433UDP-1434。其中1433用于供SQL Server对外提供服务,1434用于向请求者返回SQL Server使用了哪个TCP/IP端口。

设置SQL Server 网络配置中的TCP/IP协议为已启用状态,并且检查其默认端口是否为1433端口。具体设置步骤如下图:

服务和端口设置好后,接下来配置ODBC数据源。开放数据库连接(Open Database ConnectivityODBC)是微软公司开放服务结构(WOSAWindows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。

Qt数据库驱动并不能直接连接到SQL Server中的数据库,而是要通过配置ODBC数据源来进行连接。具体设置步骤如下图:

点击dBASE Files,选择添加

选择SQL Server

命名数据源名称并选择服务器,这里的服务器名即SQL Server 登录框中的服务器名,把它复制过来:

选择登录方式为SQL Sever验证方式,并设置登录名和密码,这里选择sa(超级用户):

注意:登录名必须是数据库中已存在的登录用户。

选择需要连接的数据库作为默认数据库:

选择下一步,选择“测试数据源”,成功后单击确定。

 

3. Qt连接数据源

新建一个Qt GUI工程,在其pro文件中加入QT += sql,并设计界面。

下面是Qt帮助文档提供的连接代码:

      QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");

      db.setHostName("acidalia");

      db.setDatabaseName("customdb");

      db.setUserName("mojito");

      db.setPassword("J0a1m8");

      bool ok = db.open();

 

建立连接的代码:

#include <QApplication>

#include <QDialog>

#include"mainwindow.h"

#include <QSqlDatabase>

#include <QDebug>

#include <QMessageBox>

#include<QSqlError>

 

bool OpenDatabase()

{

    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");   //数据库驱动类型为SQL Server

    qDebug()<<"ODBC driver?"<<db.isValid();

    QString dsn = QString::fromLocal8Bit("DataBase");     //数据源名称

    db.setHostName("localhost");                        //选择本地主机,127.0.1.1

    db.setDatabaseName(dsn);                         //设置数据源名称

    db.setUserName("sa");                             //登录用户

    db.setPassword("1234");                           //密码

    if(!db.open())                                     //打开数据库

    {

        qDebug()<<db.lastError().text();

        QMessageBox::critical(0, QObject::tr("Database error"), db.lastError().text());

        return false;                                   //打开失败

    }

    else

        qDebug()<<"database open success!";

    return true;

}

 

int main(int argc, char *argv[])

{

    QApplication a(argc, argv);

    MainWindow w;

    if(!OpenDatabase())

        return 1;

 

    w.show();

    return a.exec();

}

 

到此,Qt就连接上数据库了,其他数据库连接过程类似。

  1. 在连接过程中需注意的几个问题:
  2. 确保1433号端口已经打开;
  3. 确认SQL Server 网络配置的TCP/IP协议已启用;
  4. 正确配置ODBC数据源;
  5. 正确建立连接,登录名和登录密码为数据库中已存在的登录用户。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值