我想要动态地调用 connect.udl 并根据用户选择的账套来使用相对应的数据库
我的代码如下:
var
ConnectStr:string;
begin
      ADOConnection1.Connected:=false;   
      ConnectStr:='FILE NAME='+ExtractFilePath(ParamStr(0))+'connect.udl';   
      ADOConnection1.ConnectionString:=ConnectStr+';Initial Catalog=数据库名';   
      ADOConnection1.Connected:=true;
      showmessage(ADOConnection1.ConnectionString)
end;但showmessage出来的还是  connect.udl 原本手动指定的内容并不是我用代码指定的内容求高手解答。。

解决方案 »

  1.   

    你要先制定好udl的连接,在去用它连接数据库,而不是,不管任何环境,都去使用原有的udl配置
      

  2.   

    可以象操作ini文件那样操作:
    .udl文件:
    [oledb]
    DataSource=127.0.01,1433
    DataBaseName=testcode:
    MyIni:=TIniFile.Create(linkFile);
    DataSource:=MyIni.ReadString('oledb','DataSource','');
    DataBaseName :=MyIni.ReadString('oledb','DataBaseName','');
    MyIni.Free;
      

  3.   

    begin 
        try
          ADOConnection1.Connected:=false; 
          ADOConnection1.ConnectionString:= '';  
          ADOConnection1.ConnectionString:='FILE NAME='+ExtractFilePath(ParamStr(0))+'connect.udl'; 
          ADOConnection1.Provider:=ExtractFilePath(ParamStr(0))+'\connect.udl'; 
          ADOConnection1.Connected:=true; 
          showmessage(ADOConnection1.ConnectionString); 
        except
         showmessage('连接失败,请重新配置connect.udl文件');
         EXIT;
    end; 
      

  4.   

    直接用ADO对象,不带控件:
      strConn := 'FILE NAME=' + ExtractFilePath(ParamStr(0)) + 'Conn.udl';
      gDB_Conn := TADOConnection.Create(nil);
      try
        with gDB_Conn do
        begin
          Close;
          LoginPrompt := false;
          ConnectionString := strConn;
    //      ConnectionTimeout := 5;  // 5 sec
          Open;
        end;
      ... ...
      ... ...