Zeoslib:如何判断查询是否仍在处理?

时间:2011-09-05 23:32:56

标签: mysql sql delphi zeos

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

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

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

此存储过程最终会使用值填充MySQL表。

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

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

1 个答案:

答案 0 :(得分:3)

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

  • 您从并行线程查询
  • 你是从另一个连接查询,但是交易了 'stored proc connection'没有完成(没有自动提交也没有提交 发生)
  • 您的存储过程会启动延迟过程并返回 立即。这不太可能,因为你需要做很多工作 在mysql中有这种效果。

mdaems

Project Admin Zeoslib