创建SQL Server身份验证的登录用户
用Windows身份登录,点击安全性中的登录名,新建登录名。
输入登录名后选择SQL Server身份验证设置密码(注意:取消强制实施密码策略)。
然后点击左边的用户映射选择你要连接的数据库,然后选择下面的成员身份db_datareader、db_datawriter、db_ddladmin和db_owner,点击确定。
设置服务器属性的安全性,服务器身份验证为SQL Server和Windows身份验证模式。
重新启动数据库。
- 数据库方面已经设置好了,接下来设置ODBC。
配置ODBC
- 打开ODBC,在用户DSN中点击添加数据源,选择SQL Server,点击完成
- 填写数据源的名称、描述和服务器,服务器就是你登录SQL Server的服务器名称,点击下一步
- 选择SQL Server验证,输入数据库用户名和密码,点击下一步
- 选择连接的数据库,点下一步测试数据源,测试成功后完成ODBC的配置
Qt部分
创建一个项目,选择widget application即可,类选择QWidget
项目创建成功后,先在.Pro文件中加入sql模块
在qt中提供了多种数据驱动,可以使用qDebug() << QSqlDatabase::drivers()来打印qt支持的数据驱动,然后在类的.cpp文件中加入下列代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49#include "widget.h"
#include "ui_widget.h"
#include <QSqlDatabase>
#include <QDebug>
#include <QMessageBox>
#include <QSqlError>
#include <QSqlQuery>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
//打印支持的数据驱动
qDebug() << QSqlDatabase::drivers();
//创建数据库对象,参数为数据驱动,在这里我们是ODBC
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
//获取dsn名称
QString dsn = QString::fromLocal8Bit("Sqlodbc2");
//设置主机名,即电脑名
db.setHostName("DESKTOP-J7VJSE6");
//设置数据库名,在这里我们用odbc间接连接数据库,所以用dsn
db.setDatabaseName(dsn);
//设置数据库用户名
db.setUserName("user_c");
//设置用户密码
db.setPassword("532133921");
//打开数据库
if(!db.open())
{
QMessageBox::warning(this, "错误", db.lastError().text());
}
else
{
qDebug()<<"database open success!";
//query可以实现对数据库的操作
QSqlQuery query(db); //查询Card表并输出,测试能否正常操作数据库
//exec执行制定的sql语句
query.exec("select * from J");
while(query.next())//query.next()获取某表中下一行的内容
{
//取出当前行的内容,value(n)n表示第n个属性,也可以用属性名进行指定
qDebug() << query.value(0).toString()
<< query.value(1).toString()
<< query.value(2).toString();
}
}
}点击运行,就可以看到输出框输出了数据库ShiYan的内容
参考资料:CSDN