Qt 采用QProcess 备份及还原数据库

来源:互联网 发布:北风网大数据百度网盘 编辑:程序博客网 时间:2024/05/16 10:00

参考http://blog.csdn.net/lynfam/article/details/6194275

文章中备份数据库代码如下:

  1. QString Cmd = QString("mysqldump.exe")  
  2. QStringList argument;  
  3. argument<<"--add-drop-table"<<"-uUsrName"<<"-pUsrPsd"<<"test";  
  4. QString Path = QString("%1").arg("d://backup.Sql");  
  5. QProcess *poc=new QProcess;  
  6. poc->setStandardOutputFile(Path);  
  7. poc->start(Cmd,argument); 
实验不成功,输出的文件0字节;

原来是没有找到mysqldump.exe文件的原因

代码修改为:

  • QString Cmd = QString("C:\\Program Files\\MySQL Server 5.6\\mysqldump.exe")  
  • QStringList argument;  
  • argument<<"--add-drop-table"<<"-uUsrName"<<"-pUsrPsd"<<"test";  
  • QString Path = QString("%1").arg("d://backup.Sql");  
  • QProcess *poc=new QProcess;  
  • poc->setStandardOutputFile(Path);  
  • poc->start(Cmd,argument); 

    还原数据的代码如下:

    1. QString Cmd = QString("C:\\Program Files\\MySQL\\MySQL Server 5.6\\bin\\mysql.exe")  
    2. QStringList argument;  
    3. argument<<"-uUsrName"<<"-pUsrPsd"<<"test";  
    4. QString Path = QString("%1").arg("d://backup.Sql");  
    5. QProcess *poc=new QProcess;  
    6. poc->setStandardInputFile(Path);  
    7. poc->start(Cmd,argument); 
    8. poc->waitForFinished(-1);
    9. QMessageBox::information(0,"","还原完成!");

    问题解决


  • 0 0
    原创粉丝点击