本人利用ADOConnection連結數據庫來編寫數據庫應用程序,如何在程序編譯好後再指定ADOConnection連結的字符串(即連結新的數據庫)而不用再編譯程序?

解决方案 »

  1.   

    procedure TfrmUserLogin.FormCreate(Sender: TObject);
    var
      strConnect,strPara:String;
      strLoginFile:String;
      RegFile:TIniFile;
    begin
       DMconnected:=false;
       canlogin:=false;
       DateSeparator:='-';
       ShortDateFormat:='yyyy-mm-dd';
       strLoginFile:=ExtractFilePath(Application.ExeName)+'System.ini';
       if not FileExists(strLoginFile) then
       begin
         Application.MessageBox('系统登录文件不存在','缺少参数',MB_OK+MB_DEFBUTTON1);
         Application.Terminate;
       end;
       RegFile:=TIniFile.Create(strLoginFile);
       strConnect:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=';
       strPara:=RegFile.ReadString('Login','UserID','sa');
       strConnect:=strConnect+strPara+';';
       strPara:=RegFile.ReadString('Login','Password','');
       strConnect:=strConnect+'Password='+strPara+';';
       strPara:=RegFile.ReadString('Login','DataBase','');
       strConnect:=strConnect+'Initial Catalog='+strPara+';';
       strPara:=RegFile.ReadString('Login','Server','local');
       strConnect:=strConnect+'Data Source='+strPara;
       //----------
       DM.MainDataModule.conMain.ConnectionString:=strConnect;
       try
         DM.MainDataModule.conMain.Open;
         DMconnected:=true;
       except
         application.MessageBox('连接后台数据库失败,请与数据库管理员连接','连接失败',MB_OK);
         DMconnected:=false;
         application.Terminate;
       end;   
    end;
      

  2.   

    你把connectstring转存到一个文件中。不就行了/