QT sql的备份与恢复

本质上仍然是sql语句,备份生成bak文件,然后再回复,但是要注意两点。
1、在恢复的时候ssms必须处于关闭状态
2、其他的时候也要注意,QT的路径需要改个符号才可以认出来。
\ 改为 /
举个例子:
"C:\Program Files\JetBrains\PyCharm Community Edition 2017.3.1\bin\pycharm64.exe"
这在qt里找不着。
要这样:
"C:/Program Files/JetBrains/PyCharm Community Edition 2017.3.1/bin/pycharm64.exe"

QT sql的备份与恢复_第1张图片
image.png
QT sql的备份与恢复_第2张图片
image.png
void Detail::backup()//备份
{
     QFileDialog fd;
    QString  s =fd.getSaveFileName(this,"文件保存",
                                   "D:/4.23 ____/",
                                     "*.bak");
    QSqlQuery query;
    if(!query.exec("backup database device1 to disk='"+s+"'"))
   QMessageBox::information(this, tr("err"),tr("数据库错误: %1").arg(query.lastError().text()));
}
void Detail::restore()//恢复
{
    QFileDialog fd;
   QString  s =fd.getOpenFileName(this,"文件打开",
                                  "D:/4.23 ____/",
                                    "*.bak");
    QSqlQuery query;
    if(!query.exec("use master   restore  database device1 from disk='" +s+"' WITH REPLACE"))
    QMessageBox::information(this, tr("err"),tr("数据库错误: %1").arg(query.lastError().text()));
        else
     QMessageBox::information(this, tr("成功"),tr("恢复成功"));
}

你可能感兴趣的:(QT sql的备份与恢复)