Qt与SQL server的连接使用
来源:互联网 发布:淘宝网童装店哪家好 编辑:程序博客网 时间:2024/05/22 07:46
前言
因为数据库课设需要用到QT来写一个程序界面,并且连接SQL server数据库来提供数据查询等。以前没试过连接SQL server,记录一下如何一步步将在SQL server中创建的表连接到QT,让Qt能够访问数据库里面的数据。
全文分三个部分,一是SQL server先建立对应基本表,并插入一两条数据用于测试;二是设置ODBC源,这是在windows使用SQL server作为数据源需要设置的一个东西,后面再讲;三是Qt中对数据库的一个连接以及查询测试。
正文
一.SQL Server部分
1.建立数据库并创立对应表格
CREATE DATABASE Bank;use Bank;CREATE TABLE Card( Account INT PRIMARY KEY, Pwd VARCHAR(12) NOT NULL, Balance INT CHECK(Balance>=0) ) CREATE TABLE Record ( Account INT FOREIGN KEY(Account) REFERENCES Card(Account), Rmoney INT, Rtime DATETIME NOT NULL DEFAULT GETDATE() ) INSERT INTO Card VALUES(123456,123456,100000); INSERT INTO Record (Account,Rmoney) VALUES (123456,-100);
2.对数据库添加sql server账户
打开安全性——登录名——右键新建登录名;在选择页——常规中,新建命为user_b的登录名,选择sqlserver身份验证方式,设置密码确认密码,不勾选强制实施密码策略;下一步选择用户映射。
在选择页——用户映射中,选择要使用的数据库勾选
这里完成后,就可以用user_b来登录sqlserver和查看e_market database了,但要对数据库进行增查改删操作,再设置用户的权限。
先选择E_Market数据库,展开,选择安全性——用户——user_b——右键属性
在选择页——成员身份中按下图设置,勾选db_datareader/da_datawriter/db_ddladmin/db_owner,确定。
由此,可以通过user_b登录sqlserver,并访问数据库E_Market,进行增查改删的操作了。要是对其他数据库添加用户,可同理类推即可。
初始表格完成,再配置一下端口。
在配置数据源之前,要确保1433号端口已打开,1433端口,是SQL
Server默认的端口,SQL Server服务使用两个端口:TCP-1433、UDP-1434。其中1433用于供SQL
Server对外提供服务,1434用于向请求者返回SQL Server使用了哪个TCP/IP端口。
打开SQL Server 配置管理器,选择SQL Server网络配置,启用TCP/IP服务,并右键打开属性将,ip地址窗口中最下面IPAll的TCP端口设置为1433(大部分都默认这个端口)
二.ODBC部分
1.直接搜索打开ODBC,一般都有。运行打开如下窗口:
再点击Add添加对应数据源,选择SQL Server
确定后填写相关数据库信息
Name是对数据源的命名,后面在QT中会用到。Description是对数据源的一些简单解释描述,Server是连接数据库中对应的服务器名,即SQL Server 登录框中的服务器名
填完Name,Description, Server后下一步。
再点击一下步选择需要连接的数据库作为默认数据库
选择下一步 ,测试数据源,成功后单击确定。
三.Qt连接测试部分
1.新建一个工程,选择widget application即可。
创建工程成功后,先在.Pro文件中加入:QT += sql
Qt 提供了多种数据的驱动,可以在帮助文档搜索sql中找到
再在main.cpp中加入一些QT的SQL函数库并定义个连接函数进行连接测试。
Main.cpp的完整代码如下:
#include "mainwindow.h"#include <QApplication>#include<QSql>#include <QDialog>#include <QDebug>#include <QMessageBox>#include<QSqlError>#include<QSqlDatabase>#include<QSqlQuery>bool OpenDatabase(){ QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); //数据库驱动类型为SQL Server qDebug()<<"ODBC driver?"<<db.isValid(); QString dsn = QString::fromLocal8Bit("QTDSN"); //数据源名称 db.setHostName("localhost"); //选择本地主机,127.0.1.1 db.setDatabaseName(dsn); //设置数据源名称 db.setUserName("kid"); //登录用户 db.setPassword("kid"); //密码 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); //查询Card表并输出,测试能否正常操作数据库 query.exec("SELECT * FROM Card"); while(query.next()) { qDebug()<<query.value(0).toInt() <<query.value(1).toString() <<query.value(2).toInt(); } }return true;}int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; if(!OpenDatabase()) return 1; w.show(); return a.exec();}
再点击运行应该就成功连接到数据库了。
输出了SQL Server数据库中Card表存放的测试数据,连接成功!
部分图片及代码来源于网络,感谢互联网及背后的程序员。
- Qt与SQL server的连接使用
- Qt 使用ODBC driver 连接SQL Server
- QT连接SQL Server
- ADO 与MSS SQL Server的连接使用
- sql server 与 java 使用jdbc 连接
- QT连接SQL Server(ODBC)
- QT连接SQL Server(ODBC)
- QT连接SQL Server(ODBC)
- Qt连接SQL Server数据库
- QT连接SQL Server(ODBC)
- QT连接SQL Server(ODBC)
- Qt - ODBC连接SQL SERVER
- Qt连接Sql Server数据库
- Qt连接SQL server数据库
- java与SQL Server 2000的连接
- java与SQL Server 2000的连接
- LabView与SQL Server的连接
- SQL Server 的连接、查询与更新
- DFS专练3 全排列字典序输出问题
- 朱金付第十章编程
- mac系统从移动硬盘往外考资料时提示“不能更改xx中的一个或多个项目,因为它们正在使用中”压根就没开始用
- Proper Nutrition
- Python 字符串 循环
- Qt与SQL server的连接使用
- 什么是spring boot
- RocketMQ(6)——客户端配置详解
- Gensim官方教程翻译(一)——语料库与向量空间(Corpora and Vector Spaces)
- Gym 101617J dp
- RocketMQ(7)——通信协议
- TensorFlow技术解析与实战 8 第一个tensorflow程序
- MediaPlayer 在华为手机上的内存泄漏问题
- Python爬虫学习纪要(十一):BeautifulSoup相关知识点3