【发布时间】:2011-09-04 11:58:25
【问题描述】:
我在 Delphi 中使用 ZeosLib 通过 TZQuery 对象调用 MySQL 存储过程。在 MySQL 完成存储过程的执行后,我需要立即启动我的下一个代码块。
我在 MySQL 存储过程的末尾添加了 SELECT 1; 语句。找出结果已返回的最佳方法是什么?
【问题讨论】:
标签: mysql sql delphi mysql-connector zeos
我在 Delphi 中使用 ZeosLib 通过 TZQuery 对象调用 MySQL 存储过程。在 MySQL 完成存储过程的执行后,我需要立即启动我的下一个代码块。
我在 MySQL 存储过程的末尾添加了 SELECT 1; 语句。找出结果已返回的最佳方法是什么?
【问题讨论】:
标签: mysql sql delphi mysql-connector zeos
Zeos lib 不能很好地处理返回结果集的存储过程。
它主动禁用返回的结果集。
有一个解决方法,您可以通过更改 ZEOS 源代码来激活结果集。
但是,当您这样做时,您会收到很多错误,例如 MySQL has gone away。
在不可预测的时间,这可能是他们首先禁用此选项的原因。
最后,我采用的解决方法是将我需要的任何结果集放入(临时)表中,并在存储过程完成后查询。这解决了错误,对我来说效果很好。
【讨论】: