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); } } }
相关文章推荐
- mysql常用字符串操作函数大全,以及实例
- iOS开发数据库SQLite的使用
- MySQL 拷贝数据库表方式备份,还原后提示 table xxx '' doesn`t exist
- centos安装mongodb即遇到的问题
- Postgresql源码分析: 动态Hash
- Oracle创建表后修改表字段,增加字段
- sql语句优化方法
- Linux设置Memcached开机启动
- 【荐】MongoDB基本命令大全
- Mysql数据库设计
- 【荐】PHP操作MongoDB GridFS 存储文件,如图片文件
- MySQL并发复制系列三:MySQL和MariaDB实现对比
- Mongodb常用的一些监控命令
- Redis命令总结
- MySQL并发复制系列二:多线程复制
- shiro安全框架扩展教程--如何扩展实现我们的缓存机制(第三方容器redis,memcached)
- mysql并发复制系列 一:binlog组提交
- 因为数据库正在使用,所以无法获得对数据库的独占访问权---还原或删除数据库的解决方法
- 全面解析PHP操作Memcache基本函数
- 一些功能sql整理