You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi使用ADOConnection能否禁用或延长事务超时时间?

我正在开发一款版本比对工具,用于校验项目各分支是否都完成了所有重要变更。目前上传超大数据集时会出现超时问题,推测是数据库出于安全机制主动终止了事务,预估整个事务或请求的执行时长会超过2小时。

原有初始化代码如下:

procedure TRCForm.FormCreate(Sender: TObject);
begin
   Database := TDatabase.Create(Self);
   // 此处需要禁用事务超时
end;

待解决问题:

  • 问题1:是否可以延长事务的最长允许执行时长,或是直接完全禁用超时机制?
  • 问题2:我还考虑会不会是事务存储的数据量过大,导致运行到某一节点就终止,这种情况是否存在?如果存在的话要怎么排查和规避?

注意:使用的数据库连接组件为ADOConnection。


解决方案

只需将CommandTimeout设置为0即可完全禁用所有类型的超时。

修改后代码:

procedure TRCForm.FormCreate(Sender: TObject);
begin
   Database := TDatabase.Create(Self);
   Database.DBConnection.CommandTimeout := 0;
end;

CommandTimeout用于指定命令执行的等待时长,超过该时长则判定命令执行失败。


内容的提问来源于stack exchange,提问作者Maik Hasler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:06:04