Qtsql模块提供了与平台以及数据库种类无关的访问sql数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持。
QsqlDatabase对象象征了数据库的关联。Qt使用驱动程序与各种数据库的应用编程接口进行通信。Qt的桌面版(Desktop Edition)包括如下一些驱动程序:
驱动程序 数据库
QDB2 IBM DB2 7.1版以及更新的版本
QIBASE Borland InterBase
QMysqL MysqL
QOCI 甲骨文公司(Oracle Call Interface)
QODBCODBC(包括微软公司的QSL服务)
QPsqlPostgresql的7.3版以及更高版本
QsqlITE QSLite第3版
QsqlITE2 QSLite第2版
QTDSQybase自适应服务器
访问Qsqlite数据库的实例:
步骤:
1、创建Qt控制台程序。
2、在pro问价中添加QT +=sql;
3、在main.cpp中添加如下代码:
[cpp]view plaincopyprint?
#include<QCoreApplication>
#include<Qsql>
#include<QsqlDatabase>
#include<QsqlError>
#include<QsqlQuery>
#include<QString>
#include<QFile>
#include<QDebug>
#include<QVariantList>
intmain(intargc,char*argv[])
{
QCoreApplicationa(argc,argv);
database.setDatabaseName("CashSystem.db");
if(database.open())
qDebug()<<"DatabaSEOpened";
QStringcreate_sql="createtablemember(idintprimarykey,namevarchar(30),addressvarchar(30))";//创建数据表
QStringinsert_sql="insertintomembervalues(?,?,?)";//插入数据
QStringselect_all_sql="select*frommember";
if(!sql_query.exec())//查看创建表是否成功
qDebug()<<QObject::tr("TableCreateFailed");
qDebug()<<sql_query.lastError();
}
else
"TableCreated";
QVariantListGroupIDs;
GroupIDs.append(0);
GroupIDs.append(1);
GroupIDs.append(2);
QVariantListGroupNames;
GroupNames.append("hsp");
"rl");
"spl");
QVariantListGroupAddress;
GroupAddress.append("南充");
"宝鸡");
sql_query.addBindValue(GroupIDs);
sql_query.addBindValue(GroupNames);
sql_query.addBindValue(GroupAddress);
if(!sql_query.execBatch())
"插入记录成功";
//查询所有记录
if(!sql_query.exec())
while(sql_query.next())
intid=sql_query.value(0).toInt();
QStringname=sql_query.value(1).toString();
QStringaddress=sql_query.value(2).toString();
qDebug()<<QString("ID:%1Name:%2Address:%3").arg(id).arg(name).arg(address);
database.close();
//QFile::remove("CashSystem.db");
returna.exec();
}