Delphi + MySQL 命令行

Delphi + MySQL command line

我正在使用 Delphi 和 MySQL 构建一个工具来恢复使用 MySQLDump 生成的脚本。 它应该加载并执行 SQL 文件并将任何可能的错误记录到给定的输出文件中。

我考虑过执行 mysql 命令行并发送命令行,但我不知道是否可行或如何执行,因为我只知道如何使用 [= 调用 mysql 34=] cmd 并使用 ShellExecute 或 CreateProcess 执行单个命令行 我试图用一个命令行来完成它,但它没有正确记录错误

我试过这个: cmd /c mysql.exe --user root < "C:\restore.sql" > "C:\restore_log.txt"

restore.sql 的内容是: 删除数据库测试;

它确实执行了我的脚本,但在第二次尝试时它应该记录 "database doesn't exist" 但 restore_log.txt 是空的

如果有人能指出调用 mysql 的方式并发送多行或帮助我的 cmd 行正确记录,这将有所帮助 谁能帮帮我?

我不知道你有哪些组件可以连接到 MySQL 数据库,但是使用 TADOQuery 访问 SQL 服务器,我只是将查询加载到 TADOQuery 的 . SQL 属性 然后调用 Open 或 ExecSQL。只要它只是由 SQLDump 生成的香草 SQL,我想它应该可以工作。无论如何都值得一试。

在 Whosebug 上进行更多挖掘,我发现以前的答案很有帮助,不同之处在于输出会转到我可以保存到文件中的备忘录。 感谢大家的帮助和见解。

可以在以下链接中找到答案:

Getting output from a shell/dos app into a Delphi app

How do I run a command-line program in Delphi?

Getting output from a shell/dos app into a Delphi app