QT C++ 上的 QProcess 备份数据库
QProcess Backup Database on QT C++
我想在QT程序中用qprocess备份我的数据库,代码如下,但是备份的时候出现0kb,看报错Qprocess: Destroyed while process("mysqldump.exe")仍在运行。
QProcess dump(this);
QStringlist args;
QString path="C:/Users/mahmut/Desktop/dbbackupfile/deneme.sql";
args<<"-uroot"<<"-proot"<<"kopuz"<<">";
dump.setStandardOutputFile(path);
dump.start("mysqldump.exe",args);
if(!dump.waitForStarted(1000))
{
qDebug()<<dump.errorString();
}
你能帮帮我吗?我不明白这个错误并确定备份文件。
您的程序在进程完成之前终止,您需要使用 static bool QProcess::startDetached(program, arguments, workingDirectory)
或在末尾添加 dump.waitForFinished();
。
此外,您不需要在参数中添加“>”。您已经使用 dump.setStandardOutputFile(path)
重定向了输出,“>”不适用于进程,因为它需要 shell 来执行命令,QProcess
不使用 shell 它只运行一个进程而不是shell表达式。
我想在QT程序中用qprocess备份我的数据库,代码如下,但是备份的时候出现0kb,看报错Qprocess: Destroyed while process("mysqldump.exe")仍在运行。
QProcess dump(this);
QStringlist args;
QString path="C:/Users/mahmut/Desktop/dbbackupfile/deneme.sql";
args<<"-uroot"<<"-proot"<<"kopuz"<<">";
dump.setStandardOutputFile(path);
dump.start("mysqldump.exe",args);
if(!dump.waitForStarted(1000))
{
qDebug()<<dump.errorString();
}
你能帮帮我吗?我不明白这个错误并确定备份文件。
您的程序在进程完成之前终止,您需要使用 static bool QProcess::startDetached(program, arguments, workingDirectory)
或在末尾添加 dump.waitForFinished();
。
此外,您不需要在参数中添加“>”。您已经使用 dump.setStandardOutputFile(path)
重定向了输出,“>”不适用于进程,因为它需要 shell 来执行命令,QProcess
不使用 shell 它只运行一个进程而不是shell表达式。