ADO连接超时问题

时间:2011-03-30 07:09:14

标签: sql-server-2005 delphi delphi-2009 ado

使用TADOConnection类连接到SQL Server 2005 db。

有ConnectionTimeOut:= 5; //秒。

尝试同步打开连接。

当服务器可用并正在运行时,连接超时工作正常。如果服务器不可用或网络连接丢失,则尝试打开连接等待的时间超过5秒(可能是20秒)。

是否需要设置任何属性或方法来影响此行为?

2 个答案:

答案 0 :(得分:1)

不,只需设置ConnectionTimeout属性

即可

我遇到了确切的问题(D2009,MSSQL2005),但是 TADOConnection.ConnectionTimeout对我来说很好(顺便说一下,这个属性的deafult值是15秒)。请注意,超时分散非常宽,所以一旦你在5秒之后及之后超时,例如10秒后,但是20秒对于连接尝试来说真的太多了。

您可能遇到CommandTimeout问题(如果您尝试使用关联的ADO数据集组件执行查询)。您需要记住,如果您设置TADOConnection.ConnectionTimeout:= 5并在您的数据集组件中,例如TADOQuery.CommandTimeout:= 15,你正在尝试执行查询,然后你会在20秒后超时。

如果您确实遇到查询执行问题,不仅是连接尝试,这篇文章可能会对您有所帮助 ADO components CommandTimeout

答案 1 :(得分:-2)

TADOConnection.ConnectionTimeout - 连接数据源的超时(以毫秒为单位) TADOConnection.CommandTimeout - 执行命令的超时(以毫秒为单位)

如果在尝试连接时出现超时错误,则增加ConnectionTimeout属性的值,否则如果在执行某些查询时出错,则 - 增加CommandTimeout属性的值。

相关问题