在firebird中取消长时间运行的查询或事务

时间:2012-11-20 13:09:55

标签: delphi firebird

如何安全地中止/取消当前运行的查询/事务。使用gfix -shut可能会破坏数据库。我正在使用delphi和firebird 2.5

提前致谢 Reynaldi

2 个答案:

答案 0 :(得分:4)

Gfix无法破坏数据库。它使用安全终止运行查询并回滚所有活动事务。

您可以通过执行DELETE FROM MON $ STATEMENTS WHERE MON $ STATEMENT_ID = ...

取消给定查询

您可以通过执行DELETE FROM MON $ CONNECTIONS WHERE CONNECTION_ID = ...

来关闭整个附件

所有查询都应该从并行附件运行。

答案 1 :(得分:3)

在Andrej提供的答案旁边,Firebird 2.5 API还包含fb_cancel_operation命令,该命令取消数据库句柄上的所有正在运行的操作。您需要检查您的Delphi组件是否支持此功能。