命令超时Delphi ADO中的错误

时间:2014-04-12 04:11:48

标签: delphi ado delphi-2010

我在Delphi 2010中使用ADOStoredProcedure在Oracle中执行storageprocedure。过程执行时间为2分钟。我将命令超时设置为20秒。

当我执行程序时,错误不会引发与超时和&程序正在执行2分钟。如何在第20秒获得错误

我使用了连接字符串

'Provider=MSDAORA.1;Password=pthmu;User ID=pthmu;Data Source=orcl_300'

1 个答案:

答案 0 :(得分:2)

ADO.CommandTimeout的行为取决于提供商数据源,如documentation

中所述
  

在Connection对象或Command上使用CommandTimeout属性   对象允许取消一个Execute方法调用,原因是   网络流量延迟或服务器使用量过大。如果设置间隔   在CommandTimeout属性中,在命令完成之前经过   执行时,发生错误,ADO取消该命令。如果你设置了   属性为零,ADO将无限期地等待,直到执行为止   完成。 确保您所在的提供商和数据来源   编写代码支持CommandTimeout功能。

<强>更新

Connection Timeout and Query Timeout Not Supported with Microsoft Oracle ODBC Driver and OLE DB Provider

  

将查询发送到Oracle服务器后,使用Oracle OCI 无法取消查询。在前面的连接超时的情况下,您将在连接完成之前取消连接请求。