Delphi + MySQL命令行

时间:2017-03-09 16:05:56

标签: mysql delphi cmd shellexecute

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

我想过执行mysql命令行并发送命令行但是我不知道它是否可能如何做,因为我只知道如何使用windows cmd调用mysql并使用ShellExecute执行单个命令行或CreateProcess 我尝试用一​​个命令行来做,但确实没有正确记录错误

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

restore.sql的内容是: drop database test;

它确实执行我的脚本,但在第二次尝试时它应该记录"数据库不存在"但是restore_log.txt是空的

如果有人能指出调用mysql并发送多行的方法或者帮助我的cmd行正确记录它会有所帮助 有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:0)

我不知道您可以连接到MySQL数据库的哪些组件,但使用TADOQuery访问SQL Server,我只是将查询加载到TADOQuery的.SQL属性中然后调用Open或ExecSQL。只要它只是由SQLDump生成的vanilla SQL,我猜这应该有用。无论如何,这值得一试。

答案 1 :(得分:-1)

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

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

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