首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >德尔福ADOConnection连接超时属性不起作用

德尔福ADOConnection连接超时属性不起作用
EN

Stack Overflow用户
提问于 2016-04-01 11:42:03
回答 1查看 3.2K关注 0票数 2

我有一个控制服务器连接的功能。如果ado不能在5秒内连接,则应该会出现错误。但是,连接超时属性无法工作。

下面是我使用的代码:

代码语言:javascript
复制
function AdoConnectionTester(strServerName, strUserName, strPassword,
    strDBName: string; boolShowMessage: boolean): Boolean;
var
  ADOConn: TADOConnection;
begin
  try
    Result := True;
    ADOConn := TADOConnection.Create(nil);
    ADOConn.LoginPrompt :=False;
    ADOConn.Close;
    ADOConn.ConnectionString := 'Provider=SQLOLEDB.1;    Password='+strPassword+';'+
                                 'Persist Security Info=True;User ID='+strUserName+';'+
                                 'Initial Catalog='+strDBName+';'+
                                 'Data Source='+strServerName;
try
  ADOConn.ConnectionTimeout := 5;
  ADOConn.Open;
except
  on E: Exception do
  begin
    Result := False;
    ShowMessage(E.Message);
  end;
end;
if Result then
  if boolShowMessage = True then
    ShowMessage('OK');
  finally
    ADOConn.Free;
  end;
end;

我该如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2016-04-01 12:47:54

您没有说“不工作”是什么意思,但我假设您的意思是在指定的时间段结束时,连接不会超时。

使用下面的代码和一个保证失败的ConnectionString (通过指定一个不存在的服务器),TAdoConnection在我的局域网上似乎不会在大约9秒内超时。如果指定的超时时间比指定的时间长,则它确实会在较长的期间之后超时,但实际时间与指定的超时值没有密切关联。因此,指定一个超时值在某种意义上是“起作用的”,但如果你想要一个像你这样低的超时值,那就不是表面上的了。

如果有任何东西可以通过德尔菲的Ado来克服这个限制,我会感到惊讶。AdoConnection1. ConnectionObject只是简单地传递给附加在它上的Ado ConnectionObject,它位于COM接口的“另一边”,所以如果它没有以您想要的方式响应,就会有afaik,您无法对它做任何事情。机器TCPIP设置中的某些内容可能会产生影响,但我并不是为了找出;=而干扰我的设置)

由另一个因此q提示的更新,我重新测试了我的代码,在我的局域网上AdoConnection超时的最短时间已经缩短到2.8秒,没有任何硬件更改或软件有意识的改变。也许这种差异是由Win10更新中的一些原因造成的。

代码语言:javascript
复制
procedure TForm1.TestConnectionTimeOut(Timeout : Integer);
var
  T1 : Integer;
begin
  T1 := GetTickCount;
  AdoConnection1.ConnectionTimeout := Timeout;
  try
    AdoConnection1.Connected := True;
  except
    ShowMessage(Exception(ExceptObject).Message + #13#10 + IntToStr(GetTickCount - T1));
  end;
end;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36355461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档