1

我在 Delphi 中使用 Zeoslib 来访问本地 MySQL 数据库。

我用 TZQuery 对象调用存储过程:

ZMakeRankedTable.SQL.Text :=
  'CALL MakeRankedTable(:tableA,:tableB,:SAMP_startTime,:SAMP_endTime,:Hourspan)';   

这个存储过程最终会用值填充 MySQL 表。

我需要访问这些值,但我不知道 MySQL 何时完成处理查询。我最终在处理完成之前访问了该表。

.IsAvailable是否有.IsExecuting我可以访问的属性来确定我的查询是否已完成?如果没有,那我该怎么做?

4

1 回答 1

3

没有可用的属性表明您的查询仍在运行。但是当 ZMakeRankedTable.Execute 命令终止时,mysql 应该准备好处理存储过程。所以我只看到了 3 种情况,您可以访问 mysql 表,而过程结果尚不可用。

  • 您从并行线程查询
  • 您正在从另一个连接查询,但“存储的 proc 连接”的事务尚未完成(未发生自动提交或提交)
  • 您的存储过程会启动延迟过程并立即返回。这不太可能,因为您需要做很多工作才能在 mysql 中产生这种效果。

mdaems

项目管理员 Zeoslib

于 2011-09-06T07:03:05.587 回答