Qt实用技巧:Qt连接SQL Server数据库(需要配置ODBC)

简介: Qt实用技巧:Qt连接SQL Server数据库(需要配置ODBC)

若该文为原创文章,未经允许不得转载

原博主博客地址:https://blog.csdn.net/qq21497936

原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062

本文章博客地址:https://blog.csdn.net/qq21497936/article/details/79566999

各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

Qt开发专栏:实用技巧(点击传送门)

 

需求

       指定使用sql server数据库,qt连接sql server进行查询操作。

 

原理

       qt使用odbc驱动连接sql server数据库。

 

配置ODBC以及测试数据源

第一步:控制面板搜索ODBC数据源

第二步:添加odbc,已有则不添加,点击配置

第三部:配置ODBC向导

第四步:获取服务器名称

第五步:使用配置的sa帐号登录

第六步:配置ODBC服务器的数据库

第七步:配置完成

第八步:配置成功

第九步:点击“测试数据源“,测试成功表示数据库连接没有问题

 

关键代码

启动时连接数据库

void MainWindow::init()
{
    _sqlServer.setDataBasetName("localhost", "dictionary", "sa", "123456");
    if(!_sqlServer.connectToSqlServer())
    {
        QMessageBox::warning(this, QString::fromLocal8Bit("错误"), QString::fromLocal8Bit("数据库连接错误,词典将无法正常使用!!!"));
    }
}

设置数据库模块信息

void SqlServer::setDataBasetName(QString server, QString database, QString uid, QString pwd)
{
    _server = server;
    _database = database;
    _uid = uid;
    _pwd = pwd;
}

连接数据库的模块代码

bool SqlServer::connectToSqlServer()
{
#if 0
    // 方法一:尝试成功
    _db = QSqlDatabase::addDatabase("QODBC");
    _db.setHostName(_server);
    _db.setDatabaseName(_database);
    _db.setUserName(_uid);
    _db.setPassword(_pwd);
#else
    // 方法二:尝试成功:注意对于express版本的数据库,SERVER字段后面一定要加\\sqlexpress,否则连接不上
    _db = QSqlDatabase::addDatabase("QODBC");
    QString strConnect = QString("Driver={SQL Server};"
                                 "SERVER=%1\\sqlexpress;"
                                 "DATABASE=%2;"
                                 "UID=%3;"
                                 "PWD=%4;")
                  .arg(_server)
                  .arg(_database)
                  .arg(_uid)
                  .arg(_pwd);
    _db.setDatabaseName(strConnect);
#endif
    if(!_db.open())
    {
        emit error(_db.lastError().databaseText());
        return false;
    }else{
        emit connctedToSqlServer();
        return true;
    }
}

 

原博主博客地址:https://blog.csdn.net/qq21497936

原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062

本文章博客地址:https://blog.csdn.net/qq21497936/article/details/79566999



相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
3天前
|
SQL 关系型数据库 MySQL
【MySQL 数据库】7、SQL 优化
【MySQL 数据库】7、SQL 优化
23 0
|
5天前
|
SQL 关系型数据库 MySQL
数据库管理新星:Navicat、HeidiSQL和SQL Workbench的竞争格局
随着数据管理需求的不断增长,数据库管理工具的选择变得至关重要。在众多选择中,Navicat、HeidiSQL和SQL Workbench作为备受关注的数据库管理工具,各自展现出独特的特性和功能,竞争格局日益激烈。
17 0
|
15天前
|
SQL 存储 关系型数据库
sql数据库的相关概念与底层介绍
sql数据库的相关概念与底层介绍
32 0
|
5天前
|
存储 监控 安全
内网屏幕监控软件的数据存储与管理:使用SQLite数据库保存监控记录和配置信息
在当今数字化时代,安全和监控在企业和组织中变得至关重要。内网屏幕监控软件作为一种关键工具,帮助组织监视员工的活动并确保信息安全。这种软件不仅需要高效地记录和管理监控数据,还需要能够方便地进行配置和调整。本文将讨论如何使用SQLite数据库来保存监控记录和配置信息,并介绍如何通过自动化机制将监控到的数据提交到指定网站。
42 2
|
12小时前
|
存储 关系型数据库 MySQL
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
5 0
|
23小时前
|
SQL 关系型数据库 MySQL
Go语言与数据库基础交互:SQL篇
【2月更文挑战第13天】本文旨在探讨Go语言如何与数据库进行基础交互,特别关注使用SQL语言进行操作。我们将首先简要介绍Go语言与数据库的连接方式,然后详细讲解如何在Go中执行SQL查询、插入、更新和删除操作。此外,还将讨论如何处理查询结果以及处理可能遇到的错误和异常。
|
3天前
|
数据库
解决navicat无法连接sqlserver数据库的问题
解决navicat无法连接sqlserver数据库的问题
|
4天前
|
SQL Oracle Java
怎样写出可在各种数据库间移植的SQL
国际标准没有对这些函数做规定,这种 SQL 语句就会和数据库相关而无法移植了,而这些函数在应用开发中还特别常见。 Hibernate 能将包括这些函数的标准 HQL 语句转换成不同数据库的 SQL,但 HQL 支持的函数太少,碰到不认识的函数还是要分别注册,这就丧失了可移植性;而且 HQL 能生成的 SQL 本身也比较简单,覆盖面太窄了。
|
7天前
|
数据库
【数据库】简单&连接&嵌套查询
【数据库】简单&连接&嵌套查询
13 2
|
8天前
|
关系型数据库 MySQL 分布式数据库
PolarDB for MySQL数据库外网连接解析失败的原因
【2月更文挑战第5天】PolarDB for MySQL数据库外网连接解析失败的原因
52 8

推荐镜像

更多