您的位置:首页 > 数据库

QSQLITE

2016-07-14 12:06 405 查看

QSQLITE使用方法

QSqlDatabase类提供一个通过数据库连接访问数据库的接口。一个QSqlDatabase的实例代表了一个数据库连接

用静态方法 addDatabase() 创建一个数据库连接(也就是QSqlDatabase的实例),指定驱动或者驱动种类(也就是你要访问什么类型数据库)以及连接名称。一个连接通过它的连接名称识别,注意,不是它连接的数据库名称。你可以有多个连接连到同一个数据库。QSqlDatabase还支持默认连接概念,没有连接名称的连接就是默认连接。要创建默认连接,在调用addDatabase()方法时不传递连接名称参数(connectionName)即可。以后,当你调用任何带连接名称参数的静态成员函数时,如果你不传递连接名称参数,就会使用默认连接

在上面定义的连接将成为默认连接,因为我们没有传递连接名称参数(connectionName)给 addDatabase() 。以后,你可以不用提供连接名称参数(connectionName)直接调用 database() 方法来获得这个默认连接:

QSqlDatabase db = QSqlDatabase::database();

如果创建多重数据库连接,调用 addDatabase() 时,要为每个连接指定独一无二的名字。调用 database() 方法并传递连接名称来获取该连接。通过调用带有连接名称参数的 removeDatabase() 方法来移除一个连接。当你试图移除一个已经被其他 QSqlDatabase 对象引用的连接时 QSqlDatabase 将会输出警告。调用contains() 方法来查看给出的连接名称是否在连接列表中

下面附上代码,Qt中使用QSQLITE同时打开多个数据库

QSqlDatabase DbConn;
//添加数据库驱动,并指定连接名称MTPSQLLITE3
DbConn = QSqlDatabase::addDatabase("QSQLITE", "MTPSQLLITE3");
//创建数据库(不存在新建,存在不新建)
DbConn.setDatabaseName(path + "/debug/MTPSQLLITE3.db");
//打开数据库
if (!DbConn.open()) {
qDebug() << "open DB failed";
exit(0);
}

QSqlDatabase DbConnNew;
//添加数据库驱动,并指定连接名称MTPSQLLITE3NEW
DbConnNew = QSqlDatabase::addDatabase("QSQLITE", "MTPSQLLITE3NEW");
//新建数据库
DbConnNew.setDatabaseName(path + "/debug/MTPSQLLITENEW.db");
//打开
if (!DbConnNew.open()) {
qDebug() << "open DB failed";
exit(0);
}


void radioForm::GetDataFromDB()
{
//通过连接名称获取指定的数据库连接
QSqlDatabase dataBase = QSqlDatabase::database("MTPSQLLITE3");
QSqlDatabase dataBaseNew = QSqlDatabase::database("MTPSQLLITE3NEW");

//对MTPSQLLITE3.db数据库进行访问
QSqlQuery sqlQuery(dataBase);
QString selectAllSql = "select * from BaseArms";
sqlQuery.prepare(selectAllSql);

if(!sqlQuery.exec())
{
qDebug() << "radioForm sqlQuery error";
//qDebug()<<sqlQuery.lastError();
}
else
{
while(sqlQuery.next())
{
QString id = sqlQuery.value(0).toString();
QString name = sqlQuery.value(1).toString();
QString age = sqlQuery.value(2).toString();

qDebug()<<QString("id:%1    name:%2    age:%3").arg(id).arg(name).arg(age);
}
}

/*对MTPSQLLITE3New.db数据库进行访问*/
QSqlQuery sqlQueryNew(dataBaseNew);
QString selectAllSqlNew = "select * from Commander";
sqlQueryNew.prepare(selectAllSqlNew);

if(!sqlQueryNew.exec())
{
qDebug() << "radioForm sqlQuery error";
//qDebug()<<sqlQuery.lastError();
}
else
{
while(sqlQueryNew.next())
{
QString id = sqlQueryNew.value(0).toString();
QString name = sqlQueryNew.value(1).toString();
QString age = sqlQueryNew.value(2).toString();

qDebug()<<QString("id:%1    name:%2    age:%3").arg(id).arg(name).arg(age);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: