• 6413阅读
  • 2回复

Qt4.8如何备份SQLite数据库文件? [复制链接]

上一主题 下一主题
离线naruto
 

只看楼主 倒序阅读 楼主  发表于: 2012-08-03
RT
首先连接上数据文件,之后便可以对数据进行操作了

  1. QSqlDatabase DB = QSqlDatabase::addDatabase("QSQLITE");
  2.     DB.setDatabaseName("E:\\Program\\Qt\\database\\test.db");
  3. DB.open();
现在遇到了一个问题,我希望将目录database中的test.db数据库文件进行备份
有一种思路是直接将test.db文件拷贝保存,使用下面的代码,但是这样得到的备份文件大小为0,并没有写入成功
  1. QString filename = QFileDialog::getSaveFileName(this,"Backup Database",QDir::currentPath(),"Document files(*.db *.db3);;All files(*.*)");
  2. if(!filename.isNull())
  3.     {
  4.         QFile file(filename);
  5.         if(file.open(QIODevice::WriteOnly))
  6.         {
  7.             QFile::copy("E:/Program/Qt/database/test.db",filename);
  8.         }
  9.     }
另外一种思路是使用SQLite的接口函数进行备份,需要在工程中添加sqlite3.h和sqlite3.c文件,参考
http://blog.chinaunix.net/uid-12664992-id-160778.html

但是这两种思路我都没有备份成功,请教各位高手帮我看看问题所在,万分感谢!

离线XChinux

只看该作者 1楼 发表于: 2012-08-03
先断开数据库联接。然后备份,然后再打开数据库连接。

DB.close();
QFIle::copy(xx,xxx);
DB.open();
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线naruto

只看该作者 2楼 发表于: 2012-08-03
回 1楼(XChinux) 的帖子
谢谢,按照你的方法问题可以解决!
快速回复
限100 字节
 
上一个 下一个