说明一下,就是要在不修改ADOConnection控件的情况下,把程序拿到未知电脑上就可以运行。(一般情况下不是要先修改ADOConnection的连接吗, 我想改用动态的。)
希望说的通俗易懂点,我是初学者,谢谢

解决方案 »

  1.   


      SQL := 'Provider=SQLOLEDB.1;Password=%s;Persist Security Info=True;User ID=%s;Initial Catalog=%s;Data Source=%s';
      SQL := format(SQL,[DM.dbPwd,'sa',数据库存名,服务器名/IP]);
      try
        if DM.ConnRemote.Connected then DM.ConnRemote.Connected := false;
        DM.ConnRemote.ConnectionString := SQL;
        DM.ConnRemote.LoginPrompt := false;
        DM.ConnRemote.Connected := True;
      Except
        Raise;
      end;
      

  2.   

    最简单的方法, 你配置好了 ADOConnction 之后,把ConnectionString 拷贝下来,
    看看就明白了.
    运行的时候动态的对这些参数配置一下 就可以了
      

  3.   

    ConnectionString 写到ini或者txt配制文件里,每次连时读一下
      

  4.   

    ConnectionString字符串把需要动态配置的项放配置文件 到时候读取拼接就行了
      

  5.   

    其实很简单,你只需要动态设定ConnectionString 属性即可,可以保存到一个ini文件中,修改数据源,用户密码等信息即可
    具体办法参考1楼的既可以
      

  6.   

    如果要灵活,可以用udl,你新建一个文本文件,改后缀名为udl,然后就明白了
    在ADO中,连接这个udl就行!
      

  7.   

    SQL := 'Provider=SQLOLEDB.1;Password=%s;Persist Security Info=True;User ID=%s;Initial Catalog=%s;Data Source=%s';
      SQL := format(SQL,[DM.dbPwd,'sa',数据库存名,服务器名/IP]);
      try
        if DM.ConnRemote.Connected then DM.ConnRemote.Connected := false;
        DM.ConnRemote.ConnectionString := SQL;
        DM.ConnRemote.LoginPrompt := false;
        DM.ConnRemote.Connected := True;
      Except
        Raise;
      end;
      

  8.   

    我用是注册表,把adoConnection的连接参数写到注册表里,然后动态改变注册表的设置,就可以动态改变连接属性。
      

  9.   

    保存到 ini文件, 注册表, UDL 文件里都可以。 推荐UDL文件 最终用户可以直接使用UDL进行修改 和连接测试 方便的很!
      

  10.   

    我也试过INI文件   可是好像还需要在哪连接这个文件吗??  我每次启动的时候就是不行的
    [dbParam]
    Data Source=net12
    Initial Catalog=W1_kwxiang_18
    User ID=sa
    Password=我里面是这么写的  不知道对不对。
      

  11.   

    SQL := 'Provider=SQLOLEDB.1;Password=%s;Persist Security Info=True;User ID=%s;Initial Catalog=%s;Data Source=%s'; 
      SQL := format(SQL,[DM.dbPwd,'sa',数据库存名,服务器名/IP]); 
      try 
        if DM.ConnRemote.Connected then DM.ConnRemote.Connected := false; 
        DM.ConnRemote.ConnectionString := SQL; 
        DM.ConnRemote.LoginPrompt := false; 
        DM.ConnRemote.Connected := True; 
      Except 
        Raise; 
      end; 
    请问这个语句要放在哪里???
      

  12.   

    将连接所需的用户名、密码、服务器、数据库名、提供者等存入ini文件中
      

  13.   


    放在主窗体的formcreate中~~
      

  14.   

    INI文件:
    [system]
    serverIP=192.168.0.1
    user=sa
    passwd=sa
    dbname=testdbprocedure TForm1.Button1Click(Sender: TObject);
    var
      password,username,dbname,servername: String;
      FServerIPIni:TIniFile;
    begin
      try
        FServerIPIni:=TIniFile.Create(ExtractFilePath(Application.exename)+'sysconfig.ini');
        servername := FServerIPIni.ReadString('system','serverIP','127.0.0.1');
        username := FServerIPIni.ReadString('system','user','sa');
        password := FServerIPIni.ReadString('system','passwd','sa');
        dbname := FServerIPIni.ReadString('system','testdb','testdb');
        try
          ADOConnection1.Connected := false;
          ADOConnection1.ConnectionString :='Provider=SQLOLEDB.1;Password='+password+';Persist Security Info=True;User ID='+username+';Initial Catalog='+dbname+';Data Source='+servername+';Connect Timeout=30';
          ADOConnection1.LoginPrompt :=false;
          ADOConnection1.connected:=True;
        except
          messagedlg('数据库联接出错,程序退出.',mtInformation,[mbOk],0);
          application.terminate;
        end;
      finally
        FServerIPIni.Free;
      end;
    end;