现需要把一个数据库中数据取出来存到另一个数据库中,使用的都是access数据库,思路是创建两个连接,连接名称不一样即可。
连接测试代码如下,其中将QSqlData db; QSqlData db2;定义成全局变量,方便两个数据库直接切换
void UIDemo01::connectedDB()
{
//数据库1
db = QSqlData ::addData (\"QODBC\");
db.setData Name(\"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=Data \\\\test.accdb\");
if (db.open()) {
qDebug() << \" Connect Data Success\";
}
else{
qDebug() << \"Connect Data Errror!\";
qDebug() << db.lastError().text();
db.close();
}
//数据库2
QString db_path=ui->lineEditLookingBody->text();
qDebug()<<db_path;
db2 = QSqlData ::addData (\"QODBC\",\"a\");
db2.setData Name(QString(\"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=%1\").arg(db_path));
if (db2.open()) {
qDebug() << \" Connect Data 2 Success\";
}
else{
qDebug() << \"Connect Data 2 Errror!\";
qDebug() << db2.lastError().text();
db2.close();
}
}
调用方法,默认调用数据库一,若想调用数据库2,只需声明QSqlQuery query(db2)即可,代码如下。
QSqlQuery query(db2);
QString sql=QString(\"SELECT LOCAL_ID,HEIGHT FROM USER_INFO1_TBL WHERE NAME = \'%1\'\").arg(ui->lineEditMainName->text());
qDebug()<<sql;
//执行sql语句
if(!query.exec(sql))
{
qDebug()<<\"exec sql error!\";
}
QString local_id;
QString height;
//获取内容
if(query.next())
{
local_id=query.value(0).toString();
height=query.value(1).toString();
}
继续阅读与本文标签相同的文章
下一篇 :
运维中遇到的概念整合(不断更新)
-
8 分钟了解 Kubernetes
2026-05-18栏目: 教程
-
Helm 从入门到实践 | 从 0 开始制作一个 Helm Charts
2026-05-18栏目: 教程
-
阿里云突发性能实例t5 和共享型实例xn4 n4的区别
2026-05-18栏目: 教程
-
【DockerCon2017技术解读】Docker特性介绍
2026-05-18栏目: 教程
-
面向海量数据的极致成本优化-云HBase的一体化冷热分离
2026-05-18栏目: 教程
