C++下MySql数据库用代码实现数据库备份怎么写,求大神指导

寞寞足下 2016-12-13 05:36:15
工作要求,要用C++去备份数据库,但试了好多函数WinExec、CreateProcess、ShellExecute都不行,该怎么写
...全文
232 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
寞寞足下 2016-12-14
  • 打赏
  • 举报
回复
这样确实不行,因为那个命令 只是在cmd里运行的命令行,并不是一个进程启动后执行的。 我觉得是否可以在你的createprocess里直接创建一个cmd的进程,把mysqldump xxxx 命令行放到一个文件中,让cmd去执行这个bat就可以了。[/quote] 我的想法就是每次时间到了清理数据库之前,通过代码创建一个backup.bat文件,把备份数据库的命令放到里面,应该就可以实现备份了。备份时调用bat文件,bat文件会默认使用cmd解释里面的命令。
LongRui888 2016-12-13
  • 打赏
  • 举报
回复
引用 1 楼 u014734032 的回复:
以下是本人实验过的代码,通过bat文件去备份数据库就可以,但直接用C++代码实现就有问题 //WinExec("C:\\backupdb.bat",SW_SHOW); //int t = std::system( "C:\\backupdb.bat" ); //backup db //PROCESS_INFORMATION ProcessInfo; //STARTUPINFO StartupInfo; //This is an [in] parameter //ZeroMemory(&StartupInfo, sizeof(StartupInfo)); //StartupInfo.cb = sizeof StartupInfo ; //Only compulsory field //if(CreateProcess(L"C:\\Program Files\\MySQL\\MySQL Server 6.0\\bin\\mysqldump.exe", // L" -u root -p soaring data_store_autotest > c:\backup_db.sql", // NULL,NULL,FALSE,0,NULL, // NULL,&StartupInfo,&ProcessInfo)) //{ // WaitForSingleObject(ProcessInfo.hProcess,INFINITE); // CloseHandle(ProcessInfo.hThread); // CloseHandle(ProcessInfo.hProcess); //} //else //{ // DebugLog( 1, "CleanData:backup is error \n" ); //}
这样确实不行,因为那个命令 只是在cmd里运行的命令行,并不是一个进程启动后执行的。 我觉得是否可以在你的createprocess里直接创建一个cmd的进程,把mysqldump xxxx 命令行放到一个文件中,让cmd去执行这个bat就可以了。
寞寞足下 2016-12-13
  • 打赏
  • 举报
回复
以下是本人实验过的代码,通过bat文件去备份数据库就可以,但直接用C++代码实现就有问题 //WinExec("C:\\backupdb.bat",SW_SHOW); //int t = std::system( "C:\\backupdb.bat" ); //backup db //PROCESS_INFORMATION ProcessInfo; //STARTUPINFO StartupInfo; //This is an [in] parameter //ZeroMemory(&StartupInfo, sizeof(StartupInfo)); //StartupInfo.cb = sizeof StartupInfo ; //Only compulsory field //if(CreateProcess(L"C:\\Program Files\\MySQL\\MySQL Server 6.0\\bin\\mysqldump.exe", // L" -u root -p soaring data_store_autotest > c:\backup_db.sql", // NULL,NULL,FALSE,0,NULL, // NULL,&StartupInfo,&ProcessInfo)) //{ // WaitForSingleObject(ProcessInfo.hProcess,INFINITE); // CloseHandle(ProcessInfo.hThread); // CloseHandle(ProcessInfo.hProcess); //} //else //{ // DebugLog( 1, "CleanData:backup is error \n" ); //}

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧