本质上仍然是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"
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("恢复成功"));
}