新手求教 关于SQLITE数据库备份问题
QT 连接sqlite3数据库之后 想实现数据库的备份功能,将数据库的结构及内容导出到txt文本文件 但是导出sqlite3的内容似乎要用到 .output 这样的语句,而这些语句在QT中无法识别用什么方法才能在QT 中改变数据库数据的输出方式 或者让QT 能够执行类似 .output 这样的语句
--------------------编程问答--------------------
#include <QSqlTableModel>--------------------编程问答-------------------- 这方法太赞了,找了好久终于找到了这个解决办法,感激不尽呀。。。 --------------------编程问答-------------------- fetionone兄能否把从txt文件恢复到数据表格中的代码也贴出来参考参考呀? --------------------编程问答-------------------- 我要在把通话记录读取过来,在进行排序,还要把结果备份与恢复,要怎么实现啊 --------------------编程问答-------------------- 是在android手机上的,用sqlite,我是新手,需要帮助,谢谢
#include <QSqlRecord>
#include <QFile>
int outputToTxt(QString databaseName, QString tableName, QString txtName);
int outputToTxt(QString databaseName, QString tableName, QString txtName)
{
QSqlTableModel* model;
QStringList recordList;
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(databaseName);
if (!db.open()) {
return 1;
}
model = new QSqlTableModel(0,db);
if(model == NULL)
{
db.close();
return 2;
}
model->setTable(tableName);
model->select();
int ncolumn = model->columnCount();
QString temp;
//字段名
for(int i=0;i< (ncolumn-1); i++)
{
temp += QString::fromLocal8Bit("%1|").arg(model->headerData(i,Qt::Horizontal).toString());
}
temp += QString::fromLocal8Bit("%1").arg(model->headerData(ncolumn-1,Qt::Horizontal).toString());
recordList.push_back(temp);
//数据
int nrow = model->rowCount();
for(int j =0; j < nrow; j++)
{
temp.clear();
for(int k =0; k < (ncolumn-1);k++)
{
temp += QString::fromLocal8Bit("%1|").arg(model->record(j).value(k).toString());
}
temp += QString::fromLocal8Bit("%1").arg(model->record(j).value(ncolumn-1).toString());
recordList.push_back(temp);
}
delete model;
db.close();
//写入到txt
QFile outFile(txtName);
if (!outFile.open(QIODevice::WriteOnly |QIODevice::Truncate | QIODevice::Text))
{
return 3;
}
QTextStream out(&outFile);
for(int i=0; i < recordList.count(); i++)
{
out<<recordList[i]<<"\n";
}
outFile.close();
return 0;
}
补充:移动开发 , Qt