c++的mysql备份

JustInsist 2012-03-27 03:00:50
我用mysqldump备份数据库,用CreateProcess方式时程序就停在命令行界面不动了,用ShellExecute执行也没有结果。
直接在cmd下运行mysqldump是可以的,我的环境是64位win7 vs2008。

CString strCmdLine = "";
strCmdLine.Format("cmd.exe \c \"mysqldump --host=localhost --user=root --password=root
--port=333 dbname >aaaa.sql\"");
STARTUPINFO si; //一些必备参数设置
memset(&si, 0, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOW;
PROCESS_INFORMATION pi; //必备参数设置结束
if( !CreateProcess( NULL, // No module name (use command line)
(LPSTR)(LPCTSTR)strCmdLine, // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi ) // Pointer to PROCESS_INFORMATION structure
)
{
printf( "CreateProcess failed (%d).\n", GetLastError() );
return;
}

// Wait until child process exits.
WaitForSingleObject( pi.hProcess, INFINITE );

// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
...全文
99 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
JustInsist 2012-03-27
  • 打赏
  • 举报
回复
我怎么发了两个重复帖子呢。还是要谢谢你
SuperLy 2012-03-27
  • 打赏
  • 举报
回复
strCmdLine.Format("cmd /q/k \"mysqldump --host=localhost --user=root --password=root
--port=333 dbname >aaaa.sql\"");

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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