AdoDataSet.ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=T_BaseInfo;Data Source=ICE'最后的 ICE 是我系统个人账户,在别的机子上这个程序就不能执行了,如何变为通用的连接,应该怎么写,小弟是ado的初学者,再次谢谢各位哥哥姐姐了等候佳音

解决方案 »

  1.   

    先放一个AdoConnection控件,设置它的连接字符串,其它的AdoQuery之类的控件与之相连
    把关键字,如登录用户、密码等写到注册表或一个INI文件中,程序启动的时候,取出这些关键字,组成AdoConnection的连接字符串即可
      

  2.   

    用PromptDataSource()让用户配置,然后保存到ini文件或者注册表去;
      

  3.   

    一般都没有通用的连接
    因为每个电脑上sqlserver等数据库的服务器名称、使用者、密码
    等都是不一致的
    所以必须要动态的修改楼上的几位都说的比较清楚了
    一般的方法就是通过用文件(或者注册表)来保存连接
    然后在运行的时候读取比如:
    在ini文件中保存了连接的字符串
    每次运行的时候去读取
    如果成功、就继续
    如果不成功、就弹出配置框让用户配置
    然后用新的配置去连接数据库
    并且把新的连接写到ini或者注册表中(覆盖以前的字符串)
      

  4.   

    比如
    在登陆框显示的时候可以这样操作
    去尝试连接
    -------------------
    procedure TlogForm.FormCreate(Sender: TObject);
    var
      ConStr:wideString;
    begin
      AdoConnection1.Connected:=false;
      //AdoConnection1.ConnectionString:=....//这里去读取字符串,自己写代码
      AdoConnection1.LoginPrompt:=false;
      try
         AdoConnection1.Connected:=true;//尝试连接
         //继续操作其他
      except
         ConStr:=promptDatasource(0,'');//弹出配置框,重新连接
         if ConStr<>'' then
         begin
           AdoConnection1.ConnectionString:=ConStr;
           try
             AdoConnection1.Connected:=true;//再次连接
             //继续操作其他
           except
             //退出去检查
           end;
         end
      end;
    end;
      

  5.   

    补充,上面代码少了重要的一步
    //更新ini文件
    修改如下:
    -------------------
    procedure TlogForm.FormCreate(Sender: TObject);
    var
      ConStr:wideString;
    begin
      AdoConnection1.Connected:=false;
      //AdoConnection1.ConnectionString:=....//这里去读取字符串,自己写代码
      AdoConnection1.LoginPrompt:=false;
      try
         AdoConnection1.Connected:=true;//尝试连接
         //继续操作其他
      except
         ConStr:=promptDatasource(0,'');//弹出配置框,重新连接
         if ConStr<>'' then
         begin
           AdoConnection1.ConnectionString:=ConStr;
           try
             AdoConnection1.Connected:=true;//再次连接
             //继续操作其他
             //更新ini文件
           except
             //退出去检查
           end;
         end
      end;
    end;