【问题标题】:Zeoslib: How to tell if query is still processing?Zeoslib:如何判断查询是否仍在处理?
【发布时间】:2011-09-05 23:32:56
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 你能发送更多信息吗,代码片段会很棒。

标签: mysql sql delphi zeos


【解决方案1】:

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

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

mdaems

项目管理员 Zeoslib

【讨论】:

  • 嗯,它应该有一个 .IsAvailable 或 .IsExecuting 属性。实际上它应该有一个 OnProcessing 事件,所以我们可以在主线程用户 vcl 中放置一个百分比或动画。 ;-)
猜你喜欢
  • 2016-10-12
  • 1970-01-01
  • 2012-11-20
  • 2011-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-03
  • 2011-02-13
相关资源
最近更新 更多