我的采用的是ADO+SQL的数据连接方式,数据的连接是分散在各个模块中的.如果我做的系统拷到别的电脑上,每次都要设置ADOCONNECTION,这样做很麻烦啊,有没有什么好的方法设置数据库的连接方式.大家进来说说吧

解决方案 »

  1.   

    只用一个AdoConnection,连接的服务器,数据库名,用户名,密码保存到Ini中
    程序打开的时候,读取Ini的信息,自动生成连接串
      

  2.   

    什么是INI呢,不懂啊,能不能讲清楚点呢,具体的做法是什么呢
      

  3.   

    用INI可以或是注册表的。。
    //注册表的写入------------------------------------------------------------------
    filename 是注册表的项,key键值,Values值
    procedure WriteRegeditFile(FileName,Key,Values:String);
    var
      Regedit_w:TRegistry;
    begin
      Regedit_w:=TRegistry.Create;
      Regedit_w.RootKey:=HKEY_CURRENT_USER;//这个根键可以自己改
      if Regedit_w.OpenKey(FileName,True) then begin
         Regedit_w.WriteString(Key,values);
      end else begin
         ShowMessage('写入注册表错误');
      end;
      Regedit_w.CloseKey;
      Regedit_w.Free;
    end;
    //注册表的读取------------------------------------------------------------------
    function ReadRegeditFile(FileName,key:String):String;
    var
      Regedit_r:TRegistry;
    begin
      Regedit_r:=TRegistry.Create;
      Regedit_r.RootKey:=HKEY_CURRENT_USER;
      if Regedit_r.OpenKey(FileName,False) then begin
         Result:=Regedit_r.ReadString(Key);
      end else begin
         ShowMessage('读取注册表失败');
      end;
    end;
    //写入配置文件------------------------------------------------------------------
    procedure WriteINIFile(FileName,Main,Key,Values:String);
    var
      INIFile_W:TINIFile;
    begin
      INIFile_w:=TINIFile.Create(FileName);
      try
        INIFile_w.WriteString(Main,Key,Values);
      except
        ShowMessage('写入配置文件失败');
      end;
      INIFile_w.Destroy;
    end;
    //读取配置文件------------------------------------------------------------------
    function ReadINIFile(FileName,Main,Key:String):String;
    var
      INIFile_r:TINIFile;
    begin
      INIFile_r:=TINIFile.Create(FileName);
      try
        Result:=INIFile_r.ReadString(Main,Key,'');
      except
        ShowMessage('读取配置文件错误');
      end;
      INIFile_r.Destroy;
    end;
      

  4.   

    function TForm1.CrateAdoConn:Boolean;  //在窗体中定义一个函数
    var
       ini:TIniFile; //Ini文件类
       sSvr:string;  //服务器名
       sDb:string;   //数据库名
       sUsr:string;  //用户名
       sPsw:string;  //密码
       sCon:string;  //最后生成的连接数据库串
    begin
       ini:= TIniFile.Create(ExtractFilePath(Application.ExeName)+'Config.ini');
       sSvr:= ini.ReadString('SQL server', 'ServerName', '');
       sDb := ini.ReadString('SQL server', 'DatabaseName','');
       sUsr:= ini.ReadString('SQL server', 'UserName', '');
       sPsw:= ini.ReadString('SQL server', 'Password', '');
       sCon:= 'Provider=SQLOLEDB.1;Password='
          + sPsw
          + ';Persist Security Info=True;User ID='
          + sUsr
          + ';Initial Catalog='
          + sDb
          + ';Data Source='
          + sSvr;
       with AdoConnection1 do
       begin
          try
             Connected:=false;
             ConnectionString:=sCon;
             LoginPrompt:=false;
             Connected:=true;
             Result:=false;
          except
            ShowMessage('连接数据库服务器失败');
          end;
       end;
    end;//ini文件放在程序的根目录下,名为Config.Ini,内容为:
    [SQL server]
    ServerName=.
    DatabaseName=My
    UserName=sa
    Password=123456//你先手工建一个,再配置吧,置于怎么用程序配置,自己研究下
      

  5.   

    更正一下 Result:=false 改为 Result:=true