成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Qt中使用QProcess備份和恢復Mysql數據庫

移動開發
在Qt中使用QProcess備份和恢復Mysql數據庫是本文要介紹的內容,主要是來了解QT中數據庫如何來備份和恢復,具體內容的實現來看本文詳解。

使用QtMySQL數據庫開發,遇到需要備份、還原數據庫的問題。MySQL中沒有提供將數據庫備份成.sql文件的SQL語句,而是提供了一個mysqldump.exe工具來完成這個功能。沒有SQL語句,QSqlQuery就用不成了,決定改用QProcess實現。

但是在Qt中使用QProcess::execute()方法怎樣都導不出數據來,更郁悶的是在Qt提供的Qt Command Prompt命令行工具里都提示找不到mysqldump.exe程序,
剛開始我懷疑,莫非Qt就是不支持非Windows/System32目錄指令之外的指令了?
.
上網搜索"qt 備份Mysql數據庫",結果就發現問題的原因了。這篇"Qt中使用QProcess::execute()時需要注意的問題",在Windows中的Qt程序使用QProcess::execute()方法,不能使用管道、重定向操作符,要有重定向操作符把內容重定向到文件或者從文件中讀取輸入的話,則需要設置QProcess對象的標準輸入、輸出文件為自己需要的文件。

一般來說Windows中使用的命令行程序很少有用到管道和重定向的,因為Windows的控制臺本身不支持管道和重定向操作。

但這個mysqldump就是個特例,它需要將輸出重定向到文件。

但是像

  1. QProcess::execute("mysqldump.exe -uUsrName -pUsrPsd DbName > d:/backup.sql") 

的函數是執行不了的,至少在windows里執行不出來。

從Qt4.2開始QProcess提供了setStandardInputFile (), setStandardOutputFile (),  setStandardOutputProcess (). 三個函數來處理Windows中程序遇到管道和重定向問題,用start()方法替代execute()方法,然后使用 setStandardOutputFile ()等方式重定向輸出或輸入。

具體就是,應該將mysqldump操作寫成下面這樣:

  1. QString Cmd = QString("mysqldump.exe --add-drop-table -u%1 -p%2 test").arg("UsrName","UsrPsd");    
  2. QString Path = QString("%1").arg("d://backup.Sql");    
  3. QProcess *poc=new QProcess;    
  4. poc->setStandardOutputFile(Path);    
  5. poc->start(Cmd);    
  6.     QString Cmd = QString("mysqldump.exe --add-drop-table -u%1 -p%2 test").arg("UsrName","UsrPsd");  
  7.     QString Path = QString("%1").arg("d://backup.Sql");  
  8.     QProcess *poc=new QProcess;  
  9.     poc->setStandardOutputFile(Path);  
  10.     poc->start(Cmd); 

相應的還原數據庫操作應該寫成這樣:

  1. QString Cmd = QString("mysql.exe -u%1 -p%2 test").arg("UsrName","UsrPsd");    
  2. QString Path = QString("%1").arg("d://backup.Sql");    
  3. QProcess *poc=new QProcess;    
  4. poc->setStandardInputFile(Path);    
  5. poc->start(Cmd);   

小結:在Qt中使用QProcess備份和恢復Mysql數據庫的內容介紹完了,希望通過本文的學習能對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2023-09-21 09:31:24

MySQL數據庫

2023-12-07 15:09:23

2011-06-28 10:03:37

Qt OpenCV qmake

2010-04-12 10:40:49

Oracle數據庫

2010-10-14 09:36:47

MySQL命令行

2011-01-20 10:39:09

postfixmysql

2024-11-12 14:48:10

2010-04-12 14:19:00

Oracle數據庫備份

2019-02-28 21:20:50

MySQL備份與恢復數據庫

2010-08-09 13:30:27

DB2數據庫備份

2010-07-08 11:05:14

SQL Server數

2011-06-10 10:31:57

QT mysql linux

2024-09-10 08:00:00

PostgreSQL數據庫

2023-12-27 22:08:39

vivo數據庫

2009-04-03 10:54:49

Oracle備份恢復

2010-10-14 10:18:28

MySQL數據庫備份

2010-03-30 10:05:02

Oracle數據庫

2011-04-01 10:40:07

SQL Server數備份恢復

2023-09-12 09:45:54

Java數據庫

2011-07-05 10:16:16

Qt 數據庫 SQLite
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区在线免费观看 | 国产高清精品在线 | 亚洲精品中文字幕在线 | 欧美久久不卡 | 超碰综合| 欧洲精品码一区二区三区免费看 | 91精品国产综合久久久亚洲 | 日韩欧美国产精品 | 中文字幕精品一区久久久久 | 91精品国产综合久久婷婷香蕉 | 亚洲人成人网 | 粉嫩粉嫩芽的虎白女18在线视频 | 成人中文字幕av | 99精品免费| 久久99精品久久久久久 | 一区二区三区免费网站 | japan21xxxxhd美女 日本欧美国产在线 | 一区二区播放 | 久草网址| 日韩精品久久一区二区三区 | 日韩免费视频一区二区 | 神马福利| 亚洲一区二区在线 | av永久| 欧美不卡| 毛片免费观看视频 | 久久免费视频1 | 国产精品99久久久久久久vr | 女人毛片a毛片久久人人 | 欧美日韩在线观看视频 | 欧美日韩视频在线 | 日韩精品一区二区三区 | 中文字幕在线观看日韩 | 操人视频在线观看 | 日韩成人免费 | 国产一区二区影院 | www.久久久久久久久久久久 | 福利视频亚洲 | 日韩久久久久久 | 男人天堂999| 99精品一区二区 |