请问大家 Delphi如何通过配置ini文件去连接SQL?
大家有没相应的例子或代码?
由于是第一次接触这方面的操作,所以希望大家帮个忙.

解决方案 »

  1.   

    这个首先有一个配置好的INI文件,然后在连接数据库之前读出INI文件的配置信息来连接SQL就可以了
      

  2.   

    首先你要会对INI进行处理,INI文件读写DELPHI中有一个类TIniFile,利用这个类型你就可以方便地创建及读写INI文件了.
      

  3.   

    ////ini
    [ServerInfo]
    ServerIP=.
    SQLDBName=aaaa
    SQLUserID=sa
    SQLPwd=sa
    /////////////
    var
        FileName:string;
      begin    FileName:=ExtractFilePath( application.ExeName)+'resource\conf.ini';
        with TInifile.Create(Filename) do
        begin
          ServerIP:=ReadString('ServerInfo','ServerIP','');
          SQLDBName:=ReadString('ServerInfo','SQLDBName','');
          SQLUserName:=ReadString('ServerInfo','SQLUserID','');
          SQLPwd:=ReadString('ServerInfo','SQLPwd','');
          Destroy;
        end;
    ///////////ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password='+
        SQLPwd+
        ';Persist Security Info=True;'+
        'User ID='+
        SQLUserName+
        ';Initial Catalog='+
        SQLDBName+
        ';Data Source='+
        ServerIP;
      

  4.   

    三楼的ADOConnection1.ConnectionString 的这个是怎么配置的啊,我在编译的时候老是说这里错误,未定义
      

  5.   

    配置的问题搞定了,谢谢大家!但关于加密的问题还是希望大家能给我指导一下.
    我是这样想的: 先定义两个字符串key和str 作为明钥和密钥.str是key倒过来的对应的字符串.
    关于对应的加密,解密代码怎么写啊?我想了这么久,还是没弄会.
    加密后再如何应用到三楼的代码中去啊,希望大家指点一下,我实在弄不好了.
      

  6.   

    [039D2D4968B58091]
    6294E987F260513A=93F7BB025CD2ECE209FB77C6868074E3
    16CC3532BB7A98DF=198E4BB5584F94BF
    E7EBACCB860DAAFE=198E4BB5584F94BF
    13AE07A60EF35373=0AB3345601A7728A这是我的配置
      

  7.   

    [039D2D4968B58091]       
    6294E987F260513A=93F7BB025CD2ECE209FB77C6868074E3   //服务器
    16CC3532BB7A98DF=198E4BB5584F94BF                   //数据库名
    E7EBACCB860DAAFE=198E4BB5584F94BF                   //用户
    13AE07A60EF35373=0AB3345601A7728A                   //密码
      

  8.   


    //db_con.ini   这是你的配置文件
    [ServerInfo]
    ServerIP=.
    SQLDBName=aaaa
    SQLUserID=sa
    SQLPwd=sa
    //这是你的数据库连接单元文件中有关数据库连接函数
      function Get_Db_Con_Str(FileName:String):String;
      var
        ServerIP,SQLDBName,SQLUserName,SQLPwd:string;
      begin
        Result := '';
        with TInifile.Create(Filename) do
        begin
          try
            ServerIP:=ReadString('ServerInfo','ServerIP','');
            SQLDBName:=ReadString('ServerInfo','SQLDBName','');
            SQLUserName:=ReadString('ServerInfo','SQLUserID','');
            SQLPwd:=ReadString('ServerInfo','SQLPwd','');
          finally
            Free;
          end;
          Result := 'Provider=SQLOLEDB.1;Password='+SQLPwd+';Persist Security Info=True;User ID='+SQLUserName+';Initial Catalog='+SQLDBName+';Data Source='+ServerIP;
        end;
    //使用
     var
       Ini_FileName:String; //..... 
      
     Ini_FileName:=ExtractFilePath( application.ExeName)+'db_con.ini';
     if not FileExists(Ini_FileName) then
     begin
       ShowMessage('数据库连接配置文件不存在!');
       Application.Terimate;
     end;   
     with ADOConnection1 do
       Connection := False;
       ConnectionString:=Get_Db_Con_Str(Ini_FileName);
       try
         Connection := True;
         //.....
       except
         ShowMessage('数据库连接失败!请检查配置文件:'+Ini_FileName);
         //....
       end;
     end;
      

  9.   

    给你一个简单的:
    procedure TFrmSrv.BtnSaveClick(Sender: TObject);
    var I:integer;
    begin
      Pwd:=EdtPwd.Text;
      for I:=1 to length(pwd) do
      begin
      pwd[i]:=chr(ord(pwd[i])xor 4);
      end;
      myinifile:=Tinifile.Create(ExtractFilePath(paramstr(0))+'\setup.ini');
      myinifile.writestring('Setup','Data_Source',EdtSrv.text);
      myinifile.writestring('Setup','Initial_Catalog',EdtDB.text);
      myinifile.writestring('Setup','User_ID',EdtUser.text);
      myinifile.writestring('Setup','Password',Pwd);
      myinifile.Free;
      end;
    end;