小弟自己写了个程序玩,用的DELPHI + SQL Server 2000,用的ADO连接数据库。服务器放在我单位的(服务器有固定的IP地址,系统是WINXP Professional SP2)。我在家用ADSL上网,可以访问数据库。但是我在我朋友家里就不能连上数据库,请问这是怎么回事?帮忙解决一下把!

解决方案 »

  1.   

    先在你朋友家ping 一下通不通
      

  2.   

    SP2的防火墙我是关了的,还有我和我朋友都是用的中国电信的ADSL 1M的。
      

  3.   

    首先我想问下用ADO连远程的数据库,有什么问题没有?
      

  4.   

    安装 mdac 2.8 试一下,可能客户端的文件版本太低的原因
      

  5.   

    你客户端是用的是什么连接呢?SOCKET连接吗?还是用的COM+或什么的,DCOM不能在广域网里连接的。COM+现在还不支持分布式的连接!
      

  6.   

    mdac 2.8 官方下载  ,客户端安装一下  http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=6C050FE3-C795-4B7D-B037-185D0506396C
      

  7.   

    另DOCM若有防火干墙的话也是不能连的通的。
      

  8.   

    客户端我用的ADO连接的,不知道这样行吗?没用什么SOCKET,COM+,DCOM这些。
      

  9.   

    To hc0007(delphi初学者) ( ) :
    安装 mdac 2.8 试一下,可能客户端的文件版本太低的原因!!!可是我把我笔记本抱到我朋友家上网都连不上,可是我把笔记本拿回来在自己家就可以连上!
    不知道这是什么原因了
      

  10.   

    还有个问题就是在我朋友家不能连上SQL Server,但是能够连上那台服务器提供的IIS服务的WEB服务器!我在纳闷中
      

  11.   

    如果SQL Server连不上,程序当然不能运行;在SQL Server的配置中查一下配配网络协议、端口什么的。
      

  12.   

    请大家注意这一点,我用我的笔记本在家可以连上,可是把笔记本拿到朋友家就连不上SQL Server了,但是可以ping通IP地址。也能访问那台服务器的其他服务(比如WEB,FTP)。就是不能连上SQL Server!奇怪中!
      

  13.   

    这问题简单啊你用ODBC连上服务器再用ADO通过ODBC访问SQL SERVER2000!!!!!!!!!!1
      

  14.   

    问题还是没有解决!我能够ping通远程服务器,也能用查询分析器登陆远程的SQL服务器。大家帮忙看看我这段登陆代码有什么问题嘛?procedure TfrmLogin.Button1Click(Sender: TObject);
    var ADOConStr: string;
    begin
      frmDM.ADOcon.Close;
      ADOConStr := 'Provider=SQLOLEDB.1;Password="test";Persist Security Info=True;User ID=sa;Initial Catalog=DataTest;Data Source=215.60.80.148';
      ADOConStr := ADOConStr + ';Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=215.60.80.148 ;Use Encryption for Data=False;Tag with column collation when possible=False';
      frmDM.ADOCon.ConnectionString := ADOConStr;
      frmMain.ADOConStr := ADOConStr;  try
        begin
          frmDM.ADOCon.Open;
          with frmDM.adotData1 do
          begin
            if Locate('username', edit2.Text, [loCaseInsensitive]) then
            begin
              if trim(frmDM.adotData1.FieldValues['Password']) = md5(edit3.Text) then
              begin
                  frmMain.Show;
                  frmMain.User := trim(frmDM.adotAgent.FieldValues['username']);
                  frmLogin.Hide;
              end
              else
                showmessage('密码不对,请重新输入');
            end
            else
              showmessage('该用户名不存在');
          end;
      end
      except
        showmessage('连接数据库失败!');
      end
    end;
    结果他始终提示“连接数据库失败”
      

  15.   

    Workstation ID=215.60.80.148 是错误的,它怎么为服务器的地址是一样的呢.Workstation ID应该是本机的IP地址