怎么动态设置adoconnection的adoconnectionstring,也就是说,怎样才能在程序安装后如若需要可以更改连接的SQL SEVER 2000服务器和数据库,多谢指教  刚入门的,最好是能具体点,Thanks 先!

解决方案 »

  1.   

    adoconnection1.close;
    adoconnection1.connectionstring := '......';
    adoconnection1.open;
      

  2.   

    adoconnection1.connected := false;
    adoconnection1.connectionstring := 'Provider=SQLOLEDB.1;Persist Security Info=False;Data Source=your_db_name; User Name=your_user_id; Password=your_passwprd';
    adoconnection1.connected := true;you can save Data Source, User Name and Password information in ini file, and every time before connecting to database, read ini file to get nesessary information. 
      

  3.   

    AdoConnection1.Connected:=false;
      EditConnectionString(ADOConnection1);
      AdoConnection1.Connected:=true;
      

  4.   

    同二楼,主要是要先adoconnection1.connected := false;后才以重新写入.
      

  5.   

    把你的连接字符串保存到一个文件中
    需要的时候
    重新赋给adoconnection1.connectionstring就可以了
    赋予前断开连接
    赋予后重新连接
      

  6.   

    你可以把connectstring的字符串copy出来,然后看一下是怎么写的,照抄就行
      

  7.   

    AdoConnection1.Connected:=false;
     // EditConnectionString(ADOConnection1);
      AdoConnection1.connectstring:='xxxxx';
      AdoConnection1.Connected:=true;
    你可以把connectstring的字符串copy出来,然后看一下是怎么写的,照抄就行
      

  8.   

    大哥,怎么用文件来保存字符窜connectionstring 读和写,文件操作的问题,我不会,帮帮忙,急用的,现在没时间去看啊,各位大硖
      

  9.   

    你可以建立一个INI文件,把数据库,用户名,密码放在这个文件里,在连接的时候读这个文件,再做个窗口来设置数据库的连接选项.
      

  10.   

    把数据库,用户名,密码都放在INI中????????????!,那您还必要设密码吗?如果实在不行,就用几个elseif语句就是了
      

  11.   

    我一般的做法是放在INI,但是密码都是经过加密的
      

  12.   

    我的是这样写的,各个参数(数据库IP,名称,用户,密码)是保存在ini文件中的,数据库密码经过简单算术运算加密
    //////////////////////////////////////////////////////////////////////////////////
    procedure TDM_SQLServer.DataModuleCreate(Sender: TObject);
    var
      myini:Tinifile;
      myinifile:string;
      varpassword,varpass,varloginid:string;
      i:integer;
    begin
      try
      myinifile:=ExtractFilePath(Application.ExeName)+'\eims.ini';  myini:=Tinifile.Create(myinifile);
      serverIP:=myini.ReadString('EIMS','ServerName','192.168.0.1');
      varpassword:=myini.ReadString('EIMS','LogPass','');//取得加密后的密码
      varpass:=chr(round((strtoint(midstr(varpassword,1,4)) - 88)/88));//chr转换ASCLL码值
      varLOGINID:=myini.ReadString('EIMS','LogId','SA');//取得LOGINID
      vardatabase:=myini.ReadString('EIMS','Database','eimssystem');//取得数据库  p_broadcastIP:=myini.ReadString('netset','broadcastIP','192.168.0.255');  for i:=1 to round(length(varpassword)/4 - 1) do
        begin
          varpass:=varpass+chr(round((strtoint(midstr(varpassword,i*4+1,4)) - 88)/88));
        end;
    //    showmessage(floattostr(int(0.75)));
        with ADOConnection_sqlserver do//连接服务器数据库的参数,数据库连接将在w_main的show事件被激活
          begin
             connectionstring:='Provider=SQLOLEDB.1;Password='+varpass+';Persist Security Info=True;'+
             'User ID='+varLOGINID+';Initial Catalog='+vardatabase+';Data Source='+serverIp+';Use Procedure for Prepare=1;'+
             'Auto Translate=true;Packet Size=4096;Use Encryption for'+
             ' Data=False;Tag with column collation when possible=False';
          end;
      except
        begin
    //      MessageBox(Handle,pchar('数据库未能正确连接或程序出故障,请与管理员联系'),'系统提示',MB_ICONWARNING);
          showmessage('数据库未能正确连接或程序出故障,请与管理员联系');
          application.Terminate;
        end;
      end;end;