procedure TfrmDTMfirst.DataModuleCreate(Sender: TObject);
begin
ADOConnofficeOA.Connected :=false;
ADOConnofficeOA.ConnectionString := 'Provider=SQLOLEDB.1;Password=996232;Persist Security Info=True;User ID=sa;Initial Catalog=officOA;Data Source=ZHOURY;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Remote Server=192.168.0.3;Use Encryption for Data=False;Tag with column collation when possible=False';
try
   ADOConnofficeOA.Open;
   ADOConnofficeOA.KeepConnection := true;
except
   on E:exception do
   begin
      application.MessageBox('连接数据库出错,请与系统管理员联系!','错误',MB_OK);
      self.close;
      Application.Terminate;
   end;
end;
end;
是不是我的ConnectionString 写的不对,为什么我在局哉网的98系统上运行时找不到机器名为zhoury系统为windows2000server上装的SQL2000数据啊!
在什么地方写我数据库服务器的IP地址啊!
求高手帮忙!谢谢了!

解决方案 »

  1.   

    Data Source=服务器IP
    不要用ZHOURY
      

  2.   

    在设置connectionstring的时候我没有用到过remote server这个属性
      

  3.   

    function GetADOConnectionString: string;
    var
      ConnStr: string;
    begin
      ConnStr := ConnStr + 'Provider=SQLOLEDB.1;';
      ConnStr := ConnStr + 'Password=' +
        ReadRegString('\Software\HYSOFT\PHYMIS\Database', 'Password') + ';';
      ConnStr := ConnStr + 'Persist Security Info=True;';
      ConnStr := ConnStr + 'User ID=' +
        ReadRegString('\Software\HYSOFT\PHYMIS\Database', 'UserID') + ';';
      ConnStr := ConnStr + 'Initial Catalog=PHYMIS;';
      ConnStr := ConnStr + 'Data Source=' +
        ReadRegString('\Software\HYSOFT\PHYMIS\Database', 'Server') + ';';
      Result := ConnStr;
    end;以上生成ConnectinString,ReadRegString是我的自定义函数,用于从注册表取得字符型值
      

  4.   

    我的函数是这样写的:function GetConnectionString: string;
    var
      SYSINI: TINIFile;
      ServerName, UserName, Password, tmpstr: string;
    begin
      SYSINI := TIniFile.Create(ExtractFilePath(Application.ExeName)+'DB.INI');
      try
        ServerName := SYSINI.ReadString('Database', 'ServerName', '');
        UserName := SYSINI.ReadString('Database', 'UserName', '');
        tmpstr := SYSINI.ReadString('Database', 'Password', '');
        Password := Decrypt(tmpstr, '');
        Result := '';
        Result := 'Provider=MSDAORA.1;Password=' + Password + ';Persist Security Info=True;User ID=' + UserName + ';Data Source='+ServerName+';Extended Properties=""';
      finally
        SYSINI.Free;
      end;
    end;{用的是ORACLE的数据库}
      

  5.   

    我不知道是什么原因,说起来很麻烦!我的系统是2K数据库SQL2K,我把我的机器做为我的软件服务器。客户端是98的操作系统。我把程序拷到98机器上运行时连接不到数据库。我在2K系统上新建一个用户aa,98机器上用aa登录就可以连接到我的数据库上,可以正常使用!不是什么原因!请高手指点!谢谢!