成人免费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

2010-04-12 10:40:49

Oracle數據庫

2010-10-14 09:36:47

MySQL命令行

2011-06-28 10:03:37

Qt OpenCV qmake

2011-01-20 10:39:09

postfixmysql

2024-11-12 14:48:10

2019-02-28 21:20:50

MySQL備份與恢復數據庫

2010-04-12 14:19:00

Oracle數據庫備份

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備份恢復

2023-09-12 09:45:54

Java數據庫

2010-03-30 10:05:02

Oracle數據庫

2011-04-01 10:40:07

SQL Server數備份恢復

2010-10-14 10:18:28

MySQL數據庫備份

2011-07-05 10:16:16

Qt 數據庫 SQLite
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩日韩日韩日韩日韩日韩日韩 | 狠狠干夜夜草 | 亚洲啪啪| 黄瓜av | 丝袜一区二区三区 | 欧美色综合一区二区三区 | 99re6在线视频 | 天天宗合网| 亚洲黄色在线免费观看 | 国产精品免费视频一区 | 久久免费高清视频 | 在线国产视频观看 | 蜜桃毛片| 精品一二区| 日韩在线免费观看视频 | 亚洲h在线观看 | 男人视频网站 | 夜久久 | 国产精品精品 | 精品99久久久久久 | 亚洲综合成人网 | 成年人在线视频 | a视频在线观看 | 野狼在线社区2017入口 | 精品av| a毛片| 久久丁香| 亚洲视频中文字幕 | 久久久精品一区二区三区 | 日韩网站在线观看 | 自拍视频网站 | 成人在线一区二区三区 | 国产精品视频一区二区三区 | 成人激情视频在线观看 | 久久久久国产一区二区三区不卡 | 欧美一级毛片免费观看 | 色综合欧美 | 国产农村一级国产农村 | 国产精品日韩在线观看 | 亚洲一区二区视频 | 久久国产成人精品国产成人亚洲 |