把连接字符串放在ini文件中,运行时动态读取,

解决方案 »

  1.   

    是在
    procedure Tfrm_remotedm.RemoteDataModuleCreate(Sender: TObject);
    beginend;
    中写吗?
    为什么我在这个事件中showmessage('aaa');都死机?
    在创建RDM时,需要注意些什么吗?
    因为,delphi的demo中的login就在create时写了东西,但我却不行!
      

  2.   

    你看看你LoginPrompt的属性是true or false.
      

  3.   

    使用ini配置文件动态读取
    以下为我以前写的程序的动态读取过程,首先保证程序根目录有相应的ini文件(比如我的ykj.ini)及相关配置项([host]及它的子项server,Username,password)
    var
     myini:tinifile;
      s_s1,s_s2,s_s3:string;
    begin
           //从我的INI读取系统数据库参数的信息
          myini:=tinifile.Create('.\ykj.ini');
          s_s1:=myini.ReadString('Host','Server','');
          s_s2:=myini.ReadString('Host','Username','');
          s_s3:=myini.ReadString('Host','Password','');
          myini.Free;
      try
        ado1.connected:=false;          
    ado1.connectionstring:='Provider=SQLOLEDB.1;Password='+s_s3+';Persist Security Info=True;User ID='+s_s2+';Initial Catalog=master;Data Source='+s_s1+';Locale Identifier=2052;Connect Timeout=15;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID='+s_s1;
        ado1.LoginPrompt:=false;
        ado1.connected:=true;
      except
        //处理异常信息略
      end;
    end;