qt操作数据库的问题

在一般项目中,相比使用文件读写数据,数据库显得更加方便灵活,但在小型项目中,使用使用重量级数据库显得又没有必要,所有access和sqlite是首选,这里要讲到的是Qt中使用sqlite数据库。使用非常简单,首先在qt项目中添加sql模块,然后使用如下代码可完成一般的读写操作:

//打开数据库
QSqlDatabase mSqlDatabase = QSqlDatabase::addDatabase("QSQLITE");
mSqlDatabase.setDatabaseName("test.db");
if(!mSqlDatabase.open())
{
	QMessageBox::warning(NULL,QObject::tr("Warning"),QObject::tr("Database load failed."));
}
//...
//执行SQL语句并实用查询结果
QSqlQuery query;
query.exec("SELECT * FROM table1");
while (query.next())
{
	qDebug()<

目前有一个问题,如果对数据库安全性有要求,需要加密操作,Qt的QSqlite不支持设置密码,只留下了相应的接口,我们可以选择完善相应的接口并重新编译QSqlite插件,但感觉比较麻烦,选择使用第三方插件QtCipherSqlitePlugin,开源中国的介绍:http://www.oschina.net/p/QtCipherSqlitePlugin,目前已经下载代码并成功编译并生产dll,放在了qt的plugins/sqldriver/下,然后修改响应代码

QSqlDatabase mSqlDatabase = QSqlDatabase::addDatabase("SQLITECIPHER");
mSqlDatabase.setPassword("psw");
但是目前测试能打开,执行查询语句返回结果为空,而且不知道怎么算加密成功,怎么形成加密的数据库,代码创建的数据库文件使用sqlite工具还是能正常读写。



你可能感兴趣的:(Qt)