码迷,mamicode.com
首页 > 数据库 > 详细

实现用qt打开多个数据库

时间:2015-06-30 18:25:51      阅读:499      评论:0      收藏:0      [点我收藏+]

标签:qt   多个数据库   

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打开多个数据库

标签:qt   多个数据库   

原文地址:http://blog.csdn.net/zhang_ruiqiang/article/details/46697677

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!