我想写个程序远程访问一台internet上的数据库主机,不知有什么办法么?一般的连接方法好象都不行啊?而且如果我想动态的进行连接,比如知道对方IP地址后动态给连接属性赋值是不是不太可能啊?最后我还想问问,如果我改用MIDAS让我的客户端通过INTERNET连接服务器端可以么?最后最后来个最菜的问题,是不是MIDAS和DataSnap是一个东西?有什么区别么

解决方案 »

  1.   

    可以连接的,使用adoconnection或者是SQLconnection连接可以动态连接的,只要重写连接字串,然后重新连接即可,(connected属性)midas和datasnap基本一样,好象在delphi6以后才被称为datasnap
      

  2.   

    to  basboy(basboy):那我该怎么做呢?adoconnection的连接字串怎样在程序中动态生成啊?比如用户填入SQL服务器的IP地址程序自动生成连接字串有办法么?
      

  3.   

    procedure TdmMaster.ADOCMainBeforeConnect(Sender: TObject);
    begin
      ADOCMain.ConnectionString := 'Provider=SQLOLEDB.1;' +
        'Password=' + ReadRegString('HYSOFT\GSPMIS', 'Password') + ';' +
        'Persist Security Info=True;' +
        'User ID=' + ReadRegString('HYSOFT\GSPMIS', 'UserID') + '; ' +
        'Initial Catalog=wManager;' +
        'Data Source=' + ReadRegString('HYSOFT\GSPMIS', 'DBServer');
    end;以上程序自动生成ConnectionString,连接信息可由客户设置,保存在注册表中,ReadRegString是自定义函数,用于从注册表中读取字符串值
      

  4.   

    没来晚的,希望大家能给我点更详细的资料或方法好么? TOMWLD(笑天) 的代码中ReadRegString这个自定义函数具体的实现能告诉我么
      

  5.   

    function ReadRegString(KeyPath, KeyName: string): string;
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create;
      try
        Reg.RootKey := HKEY_CURRENT_USER;
        if Reg.OpenKey(KeyPath, True) then
          Result := Reg.ReadString(KeyName)
        else
          Result := '';
      finally
        FreeAndNil(Reg);
      end;
    end;