我在Delphi 2010中使用ADOStoredProcedure在Oracle中执行storageprocedure。过程执行时间为2分钟。我将命令超时设置为20秒。
当我执行程序时,错误不会引发与超时和&程序正在执行2分钟。如何在第20秒获得错误
我使用了连接字符串
'Provider=MSDAORA.1;Password=pthmu;User ID=pthmu;Data Source=orcl_300'
答案 0 :(得分:2)
ADO.CommandTimeout
的行为取决于提供商和数据源,如documentation
在Connection对象或Command上使用CommandTimeout属性 对象允许取消一个Execute方法调用,原因是 网络流量延迟或服务器使用量过大。如果设置间隔 在CommandTimeout属性中,在命令完成之前经过 执行时,发生错误,ADO取消该命令。如果你设置了 属性为零,ADO将无限期地等待,直到执行为止 完成。 确保您所在的提供商和数据来源 编写代码支持CommandTimeout功能。
<强>更新强>
将查询发送到Oracle服务器后,使用Oracle OCI 无法取消查询。在前面的连接超时的情况下,您将在连接完成之前取消连接请求。