begin
  SqlConStr := 'Provider=SQLOLEDB.1;Password=' + EditSQLPassword.Text +';Persist Security Info=True;User ID=' + EditSQLUserName.Text +';Initial Catalog=RodYangMov;Data Source=' + EditSQLIP.IPString;  ADOConnection1.Close;
  ADOConnection1.Connected := False;
  ADOConnection1.CommandTimeout := 1;
  ADOConnection1.ConnectionTimeout := 1;
  with ADOConnection1 do
    begin
      LoginPrompt := False;
      ConnectionString := SqlConStr;  //数据库连接字符串
      //Connected := True;
    end;  try
    ADOConnection1.Connected := true;
  except
    ShowMessage('数据库连接不成功');
  end;
用这段代码我已经将连接超时时间设置成1了,但为什么我连接一个不存在的IP时,任然要等差不多1分钟才会提示我连接不成功呢?  delphi xe   SQL2000SP4

解决方案 »

  1.   

    你可以先测试那个电脑的IP或者名称,返回这个
    if   电脑名称或者IP=存在  then
       连接数据库
    else
       提示[电脑不存在,IP不存在,或者网络设置不存在]
      

  2.   


    没用的,就算IP是通的,但是只要这个机子上没SQL,那么等待时间还是非常长
      

  3.   

    若MSSQL数据库服务器,是这个吗
    你编写的程序是C/S模式的吗,不是这个的话,好像就与这个没有关系了呀
      

  4.   

    我也遇到这个问题,设置1是没用的,设置成为15好像可以的。估计ado的超时时间有一个最小值,小于这个最小值就没有意义了。关注其他人的回答
      

  5.   


    学到知识可要给我分呀

    我打个比方说:
    “声明我的用MSSQL数据库版本:MSSQL2008测试通过”
    假设MSSQL数据库中心在PC_A电脑上
    在这个电脑上定义的连接如下:
    Provider=SQLOLEDB.1;Password=登陆用户名;Persist Security Info=True;User ID=密码;Initial Catalog=数据库名;Data Source=127.0.0.1
    而这个电脑的IP若设为:192.168.1.220
    //--------------------------------------------------------------------------
    从PC_B电脑若要访问这个数据库,连接方式如下:
    Provider=SQLOLEDB.1;Password=登陆用户名;Persist Security Info=True;User ID=密码;Initial Catalog=数据库名;Data Source=192.168.1.220
    //--------------------------------------------------------------------------
    我的测试方案:
      delphi7+MSSQL2008测试通过
      

  6.   

    你用到了那些控件。每个空间的时间都要设置才行。你但但设置一个连接数据库的ADO是不行的
      

  7.   

    ADO的
    connectionString
    connectiontimeout 都设置为0
    其它使用到ADO的控件属性connectiontimeout 都设置为0 
    这样就不会出现超时了,一直会等到你有结果为止。
    所以你说你设置了ADO为1,会等到1分钟后显示超时。同上理一样设置就可以了
      

  8.   

    ADO及其它控件的关联也可能有问题,仔细看一下吧