QT操作access

前言

这里写了一些关于QT和access数据库之间的操作,功能不多,暂时够用


提示:以下是本篇文章正文内容,下面案例可供参考

一、QT连接access数据库

首先得在.pro文件中加入QT+=sql
头文件中也得加上这些
QSqlDatabase
QSqlQuery
QSqlError

    QSqlDatabase acDb = QSqlDatabase::addDatabase("QODBC", "accessDB");const QString dsn(QString("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=%1;Uid=%2;Pwd=%3").arg(newreportpath).arg("admin").arg("aaaa1111"));    //newreportpath是数据库的路径,admin是用户名,aaaa1111是密码acDb.setDatabaseName(dsn);if(acDb.open()){qDebug()<<"连接AccessDB成功";}else {qDebug()<<"连接AccessDB失败"<<acDb.lastError().text();}

这里就将QT与access数据库连接起来了,也可以进行某些操作来操作数据库了,如果没有连接成功,检查路径、用户名、密码等是否正确。

二、QT在access数据库中创建表格

代码如下(示例):

QSqlQuery query = QSqlQuery(acDb);query.clear();query.prepare("Create TABLE[IRI](id Counter(1,1)  primary  key,区间起点 varchar(50),区间终点 varchar(50),速度 varchar(50))");query.exec();

中括号里的IRI是表名,这里的primary key是为你选定的字段上锁,aceess的表一定有一列字段是上锁的,上锁的字段不会出现重复的数或者字,这样是为了方便之后的增删改查操作,这里是以id为上锁字段,手动在access中创建表格的时候也是默认id字段为上锁字段。后面的varchar(50)指的是创建短文本字段,创建后效果如下:
在这里插入图片描述

三、QT往表格里添加字段数据

代码如下(示例):

query.prepare("insert into IRI (区间起点,区间终点,速度) values (:a,:b,:c)");
query.bindValue(0,"太平路东");
query.bindValue(1,"太平路南");
query.bindValue(2,"40");
query.exec();

效果图如下所示:
在这里插入图片描述


四、增删改查

最后再写点最基本的操作增删改查吧。

QSqlQuery query;
QString sqlstr = “insert into point values(?,?,?)”;
query bindValue(0,x);
query bindValue(0,y);
query.exec();
或者
QSqlQuery query;
QString sqlstr = “insert into point values(1,2,3)”;
query.exec(sqlstr);


QSqlQuery query;
QString sqlstr = “delete from point where x=1”;
query.exec(sqlstr);


QSqlQuery query;
QString sqlstr = “update point set z=2,y=2 where x=1”;
query.exec(sqlstr);


QSqlQuery query;
QString sqlstr = “select *from point where x>10”;
query.exec(sqlstr);


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部