qt 获取oracle表数据,Qt5.10利用OCI读取Oracle数据库

QT支持多种数据库的读写,因为本身安装包中就有数据库驱动,但是没有现成的oracle数据库读写的驱动需要手动编译才可以。有已经编译好的64位的oci驱动dll。

1.下载驱动

QT64位Oracle读写DLL下载

把下载好的驱动dll放到QT数据库驱动文件夹下面:C:\Qt\Qt5.10.0\5.10.0\msvc2015_64\plugins\sqldrivers

f2f5da554947bc1aa2757d9c5a661fbc.png

2.操作数据库

1.调用静态函数,创建数据库链接;

QSqlDatabase db = QSqlDatabase::addDatabase("QOCI", "aewes");

2.链接数据库:

db.setHostName(strHost);//主机IP

db.setUserName(strUserName);//用户名

db.setPassword(strPassword);//密码

db.setPort(port);//端口号

db.setDatabaseName(strDbName);//数据库名

if (!db.open()) {

qDebug() << QStringLiteral("++++++++++++++++++++++++++++++++++数据库连接失败!");

}

3.插入数据:

QSqlDatabase db = QSqlDatabase::database("aewes");

QSqlQuery query(db);

//想要插入多条数据,必须多次运行insert into语句

query.prepare("insert into HYMP_TEST values (:id ,:name,:age)");

query.bindValue(":id", 1);

query.bindValue(":name", QStringLiteral("张三"));

query.bindValue(":age", 26);

query.exec();

db.commit();

4.删除数据:

QSqlDatabase db = QSqlDatabase::database("aewes");

QSqlQuery query(db);

query.prepare("delete from HYMP_TEST where id = :id");

query.bindValue(":id", 1);

query.exec();

db.commit();

5.更新数据:

QSqlDatabase db = QSqlDatabase::database("aewes");

QSqlQuery query(db);

query.prepare("update HYMP_TEST set name = :name , age = :age where id = :id");

query.bindValue(":name", QStringLiteral("李四"));

query.bindValue(":age", 89);

query.bindValue(":id", 1);

query.exec();

db.commit();

6.查询数据:

QSqlDatabase db = QSqlDatabase::database("aewes");

QSqlQuery query(db);

query.exec("select * from HYMP_TEST");

QStringList list;

int rows = query.numRowsAffected();

int fieldNum = query.record().count();//字段数量

qDebug() << QStringLiteral("查询到的字段数:") << fieldNum;

while (query.next()) {

list << query.record().value(0).toString();

for (int i = 0; i < fieldNum; i++) {

qDebug() << query.record().value(i).toString();

}

}

QSqlDatabase db = QSqlDatabase::database("aewes");

QSqlQuery query2(db);

query2.prepare("select * from HYMP_TEST a where a.id = :id");

query2.bindValue(":id", 2);

query2.exec();

QSqlRecord rec = query2.record();

int idxName = rec.indexOf("name");

while (query2.next()) {

qDebug() << query2.record().value(idxName).toString();

}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值