如题:最好有源代码,先谢了!

解决方案 »

  1.   

    具体就是动态设置连接参数。很简单的,比如ADO,只需要连接前设置ConnectString就行了。
    具体配置可以保存到注册表,Ini文件里面。如果是文件型的,不如Access,可以根据相对目录动态生成连接字符串就行了。
      

  2.   

    程序启动的时候,从一个配置文件(ini,udl,普通文本文件)之类读取连接字符串,然后对adoconnection的连接字符串赋值。
      

  3.   

    同意楼上!写在配置文件中!并将密码加密!以下是自己写的源码,仅供参考!
    procedure TDMEAM.DataModuleCreate(Sender: TObject);
    var
      sTempAddRess :String;
      sServerName,sDatabaseName,sDataUser,sDataPw,sDataType,sAdoConString :String;
      List: Tinifile;
    begin
      If ADOConnectionEAM.Connected Then
        ADOConnectionEAM.Connected := False;
      sTempAddRess :=ExtractFilePath(Application.ExeName);    
      Try
        List := Tinifile.Create(ExtractFilePath(Application.ExeName)+'DataSet.ini');
        sServerName:=list.readstring('LdEamDataSet','sServerName','');
        sDatabaseName:=list.readstring('LdEamDataSet','sDatabaseName','');
        sDataUser:=list.readstring('LdEamDataSet','sDataUser','');
        sDataType:=list.readstring('LdEamDataSet','sDataType','');
        sDataPw:=List.readstring('LdEamDataSet','sDataPw','');    
        if sDataPw<>''then
          sDataPw:=Trim(DecryptString(sDataPw,'hjjh',kb256));      
        If sDataType='Access' Then
          sAdoConString :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+sDatabaseName+';Persist Security Info=False '
        Else
        Begin
          If sDataPw<> '' Then
            sAdoConString :='Provider=SQLOLEDB.1;Persist Security Info=True;Connect Timeout=5;User ID='+sDataUser+';Password='+sDataPw+' ;Initial Catalog='+sDatabaseName+';Data Source='+sServerName
          Else
            sAdoConString :='Provider=SQLOLEDB.1;Persist Security Info=True;Connect Timeout=5;User ID='+sDataUser+';Password=ldmaster;Initial Catalog='+sDatabaseName+';Data Source='+sServerName;
        End;
        ADOConnectionEAM.ConnectionString:=sAdoConString;      
      Finally
        List.free;
      End;
      Try
        ADOConnectionEAM.Connected := True;
      Except
        ShowMessage('数据库连接失败,请重新配置!');
        Exit;
      End;
    end;