当前位置:网站首页>Qt 链接MSSQL
Qt 链接MSSQL
2022-07-27 18:29:00 【hitzsf】
Qt 链接MSSQL
参考文章:
Microsoft ODBC 驱动程序 17 for SQL Server Connection Strings - ConnectionStrings.com
第1种方式
配置本地的ODBC源
配套代码:
// 第一种方法
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("localhost");
db.setDatabaseName("mssql"); //设置数据源名称
db.setUserName("SYSTEM");
db.setPassword("SYSTEM123,.");
第2种方式
可以使用SQL Server的链接字符串来实现,方式如下
#include <QtWidgets>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlRecord>
bool OpenDatabase()
{
/* 第一种方法 QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setHostName("localhost"); db.setDatabaseName("mssql"); //设置数据源名称 db.setUserName("sqluser"); db.setPassword("password"); */
/* 第二种方法 链接字符串 */
QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName(QString("DRIVER={SQL SERVER};"
"SERVER=%1;" //服务器名称
"DATABASE=%2;"//数据库名
"UID=%3;" //登录名
"PWD=%4;" //密码
)
.arg("192.168.1.207")
.arg("SCADA_AVIC_SERVER")
.arg("SYSTEM")
.arg("SYSTEM123,.")
);
bool ok=db.open();
if(ok)
{
qDebug()<<"打开数据库成功";
}
else
{
qDebug()<<"打开数据库失败";
}
return ok;
}
bool queryTable(QString tableName)
{
QString sql = "select * from %1";
sql = sql.arg (tableName);
QSqlQuery query;
query.exec (sql);
int i = 0;
qDebug() << query.size () << query.record ().count ();
auto record = query.record ();
QStringList colNames;
for (int i = 0; i < record.count (); ++i) {
colNames << QString("%1: ").arg (i,3,10,QChar('0')) + record.fieldName (i);
}
qDebug() << colNames.join (" , ");
while(query.next ()){
QStringList rowRecord;
rowRecord << (QString("%1").arg (++i,4,10,QChar('0')));
for (int j = 0; j < record.count (); ++j) {
rowRecord << query.value (j).toString ();
}
auto string = rowRecord.join (" ");
qDebug() << string;
}
qDebug() << query.size ();
return query.size ();
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv); // 这行不能少哦
OpenDatabase();
queryTable("T_S_BASE_USER");
return 0;
}
总结
明显第2种方式会比较好,不需要额外去配置本地的ODBC源。
边栏推荐
- 【R语言】【1】初学R语言语法使用Rstudio编辑
- Academic sharing | Tsinghua University, Kang Chongqing: power system carbon measurement technology and application (matlab code implementation)
- After working for bytek for two years, he got 15 offers at one go
- 【防抖与节流】
- IPv4/IPv6、DHCP、网关、路由
- [Numpy] 广播机制(Broadcast)
- 【深度学习】Pytorch Tensor 张量
- 基于ATX自动化测试解决方案
- R语言使用epiDisplay包的lroc函数可视化logistic回归模型的ROC曲线并输出诊断表(diagnostic table)、可视化多条ROC曲线、使用legend函数为可视化图像添加图例
- R语言使用dplyr包进行数据聚合统计计算滑动窗口统计值(Window Statistics)、计算滑动分组均值(mean)并合并生成的统计数据到原数据集中
猜你喜欢

Best practices for Oracle kingbasees migration of Jincang database (4. Oracle database migration practice)

js闭包知识
![[program life]](/img/68/9a337d37490ad5cd75095cc5efd5e4.jpg)
[program life] "stage summary" - unwilling to be ordinary
![[Numpy] 广播机制(Broadcast)](/img/1f/8d61ac7b35a82067bc0b77426590eb.png)
[Numpy] 广播机制(Broadcast)

Hcip day 5

After working for bytek for two years, he got 15 offers at one go
![重复的DNA序列[hash判定重复+滑动窗口+二进制编码之位运算]](/img/ed/6f4da22e86b44935fc84e3b4901c48.png)
重复的DNA序列[hash判定重复+滑动窗口+二进制编码之位运算]

Slim: self supervised point cloud scene flow and motion estimation (iccv 2021)

2022-07-19 advanced network engineering (XX) BGP route optimization, route optimization analysis one by one

Things about stack migration
随机推荐
学术分享 | 清华大学 康重庆:电力系统碳计量技术与应用(Matlab代码实现)
Force deduction solution summary 592 fraction addition and subtraction
Express WEB服务器的简单使用
Download of MySQL driver jar package -- nanny tutorial
Management of user organization structure
自定义学习率
认识传输介质通信方式
mcu日志输出的一种方法
认识网络模型网络模型概述
VI working mode (3 kinds) and mode switching (conversion)
After working for bytek for two years, he got 15 offers at one go
MYSQL设计优化生成列
Best practices for Oracle kingbasees migration of Jincang database (2. Overview)
未定义变量 “Lattice“ 或类 “Lattice.latticeEasy“(Matlab)
基于ATX自动化测试解决方案
Brand list cases
Why does Alibaba prohibit more than three forms from joining?
Vant component library
品牌列表案例
vant组件库