我正在使用 qt Creator 设计一个 GUI 应用程序。如果我按下按钮,.csv 文件中的值就会导入到 sqlite3 数据库表中。
为此,我使用 QProcess 启动了一个 shell 脚本,其中包含用于导入数据的命令。
void MainWindow::on_pushButton_clicked()
{
QProcess process;
process.startDetached("/bin/sh", QStringList()<< "/home/aj/myscript.sh");
}
用于导入的 myscript.sh 是--
echo -e '.separator ","\n.import import_table.csv test_table' | sqlite3 testdatabase.db
这种方法背后的原因是,如果不创建自定义解析解决方案,点命令就无法直接集成到 C++ GUI 程序中。
现在,这种方法(QProcess 和 shell 脚本)非常适合我。但一个瓶颈是它不提供任何错误处理/识别。
例如,如果导入命令在数据检索期间中途停止,或者 .csv 中的所有值均未导入,我将不知道问题所在。有什么方法可以知道导入过程中是否出现问题??? (通过 QDebug 重定向消息???)
最佳答案
QProcess 有一个名为 exitCode()
的成员函数,奇怪的是它返回进程的退出代码。
http://qt-project.org/doc/qt-5/qprocess.html
要找到这个答案,需要在 Google 中搜索文档 10 秒...
关于c++ - Shell 脚本执行 - 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27356530/