实现用qt打开多个数据库
2015-06-30 16:46
435 查看
1.需求
原来保存数据使用的是sqlite的内存数据库,后来需要将配置信息等也保存到数据库,程序配置后关闭打开要能显示正常显示保存的配置信息2.解决
1.将配置信息写入到普通的配置文件(ini等),第一个版本这样实现,缺点读写文件有点慢2.程序中采用两种数据库,内存数据库和文件数据库,将敏感信息存放到内存数据库,将用户配置信息等存放到文件数据库,进行长期保存
3.部分代码
1.创建内存数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "memory"); db.setDatabaseName(":memory:"); if (!db.open()) { LOG_ALL_ERROR(QStringLiteral("failed open sqlite.")); return bret; }
2.创建文件数据库
QString strdbpath(""); strdbpath = QCoreApplication::applicationDirPath(); strdbpath += "/db"; QDir dir(""); dir.mkpath(strdbpath); strdbpath += "/mysqlite.db"; QSqlDatabase dbset = QSqlDatabase::addDatabase("QSQLITE", "file"); dbset.setDatabaseName(strdbpath); if (!dbset.open()) { LOG_ALL_ERROR(QStringLiteral("failed open mysqlite.db")); return bret; }
3.使用内存数据库
QSqlQuery query(QSqlDatabase::database("memory", true)); bret = query.exec("create table backlist(no varchar(100), " "name varchar(200),color varchar(100), " "size varchar(100), retail double, " "discount double, unit double, " "attrid varchar(33), salenum int, " "backmax int, backnum int, totalprice double, " "serial varchar(100), orderid varchar(33), " "date varchar(100))");
4.使用文件数据库
QSqlQuery setquery(QSqlDatabase::database("file", true)); bret = setquery.exec("create table printset(btitle INTEGER,bshop INTEGER,bbarcode INTEGER, " "bsellid INTEGER,bcashdesk INTEGER,bcashier INTEGER, " "bdate INTEGER,bmemid INTEGER,bscore INTEGER, " "bpayable INTEGER,bprivilege INTEGER,btotal INTEGER, " "bgoodname INTEGER,bgoodcount INTEGER,bunit INTEGER, " "bsum INTEGER,bdiscount INTEGER,bprice INTEGER, " "bcash INTEGER,bbank INTEGER,bchange INTEGER, " "btel INTEGER,bend INTEGER)");
4.参考
1.http://blog.csdn.net/abeldeng/article/details/24767245这篇文章讲述了创建没说使用2.qt助手
相关文章推荐
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- Qt定时器和随机数详解
- Qt实现图片移动实例(图文教程)
- Qt for Android开发实例教程
- QModelIndex/Role/Model介紹<二>
- 基于PyQt5的快速开发框架QFramer
- ok6410开发板移植DirectFB手记
- 【笔记】给Qt内嵌一个Chrome吧
- 【算法】最短路径之A*搜索
- qt入门必备
- 在 Qt4 中使用 C++11
- Hello Word ~ v0.2.2 背单词软件发布 -- By WHYPRO
- ubuntu下opencv和qt的安装配置
- linux下opengl的安装(with qt)
- qt 学习小节
- QT的命名风格
- QT 中的sleep
- QT 串口的监控
- 在VS2010下配置QT和ITK+VTK