function TDM.isconn():boolean;
var
  AppIni:TInifile;
  sFilename,sServer,sDatabase,sUsername,sPassword:string;
begin
  result := true;  sFilename:=ExtractFilePath(application.ExeName)+'link.ini' ;
  AppIni := TIniFile.Create(sFilename);  sServer:=AppIni.ReadString('YJDataBase','Server','Server');
  sDatabase:=AppIni.ReadString('YJDataBase','Database','Database');
  sUsername:=AppIni.ReadString('YJDataBase','Username','Username');
  sPassword:=AppIni.ReadString('YJDataBase','Password','Password');
  With conyj do
  begin
     Close;
     LoginPrompt:=False;
    ConnectionString:='Provider=SQLOLEDB.1;Password='#39+sPassword+#39';Persist Security Info=True;User ID='#39+sUsername+#39';Initial Catalog='#39+sDatabase+#39';Data Source='#39+sServer+#39'';
    Try
      Connected:=True;
    Except
      //链接异常处理
      ON EOLEException do    //这里需要在uses中添加ComObj才可以使用
     begin
        showmessage('药监数据库连接不成功!');
        result := false;
        Halt;
     end;
    end;
  end;end;

解决方案 »

  1.   

    mssql自己的管理工具也是这样的
      

  2.   

    我调用这个函数,做了判断,可是他走到 Try
          Connected:=True;就不往下走了
    执行不到  Except
          //链接异常处理
          ON EOLEException do    //这里需要在uses中添加ComObj才可以使用
         begin
            showmessage('药监数据库连接不成功!');
      

  3.   

    Try
      Connected:=True;
     Except      ON e : exception do    //改成exception  看一下错误信息
         begin
            showmessage(e.message);
            result := false;
            Halt;
         end;
        end;
      

  4.   

    不行,还是卡到 Connected:=True;不动
      

  5.   


    既不出异常, 也不向下执行?
      连接超时的时间设置了多长?打开sql管理器, 用你连数据库的相关信息连接一下看看, 找一下产生问题的环节
    如果sql管理器能连上, 就找程序的bug, 反之, 检查sql配置是否正确
      

  6.   

    connectionTimeout 是1000,要连的这个库确认是连不上,因为就没开
      

  7.   


    服务器能正常连接吗?   如果只是库连接失败, 反馈时间会比设置等待时间长点儿
    connectionTimeout设短点儿, 测试的话, 设5试试
      

  8.   

    连接串加 
    ;Connect Timeout=10