客户端没有安装oracle客户端,用delphi7,odac。
客户端和服务器在同一个局域网里,能访问服务器上的数据库,但客户端在外网远程访问服务器时报错:NET:Connectin Timed Out。
我程序是这样写的的:
  if not OraSession1.Connected then
  begin
    try
      OraSession1.ConnectString := '218.206.107.11:1521:RjTest;
      OraSession1.Options.Direct := True;
      OraSession1.Options.Net := True;
      OraSession1.Open;
    except on E: Exception do
      ...
    end;
  end;
难道是我ODAC版本有问题?
我都折腾两天了,请高手指点啊

解决方案 »

  1.   

    访问外网和内网是不一样的
    防火墙,权限等等都有可能限制你得访问
    建立三层结构,或者用webservice,vpn来实现吧
      

  2.   

    在线等待。
    1521端口我能从外网telnet通的
      

  3.   

    Option   下面的三個項目都設為TRUE; 好像就這個原因了。
      

  4.   

    OraSession1.Connected := false;;
    OraSession1.Server := '192.168.36.32:1521:ora92';
    OraSession1.Username := 'test';
    OraSession1.Password := 'test';
    OraSession1.AutoCommit := false;
    OraSession1.Connected := true;;
      

  5.   

    上面这句我写漏了:OraSession1.ConnectString := '218.206.107.11:1521:RjTest; 
    应该是:OraSession1.ConnectString := 'system/[email protected]:1521:RjTest';
      

  6.   


     if not OraSession1.Connected then 
      begin 
        try 
          OraSession1.Server:= '218.206.107.11:1521:RjTest'; 
          OraSession1.Username := Username ; 
          OraSession1.Password := Password ; 
          OraSession1.Options.Direct := True; 
          OraSession1.Options.Net := True; 
          OraSession1.connectprompt := false; // 還是 loginPrompt  忘掉了。暈。
          OraSession1.Connected := True; 
        except on E: Exception do 
          ... 
        end; 
      end; 
      

  7.   

    是不是我的ODAC版本有问题?
     问题是在客户端机器上,用OraTools工具去连接外网的局域网内的服务器的也有同样问题:net:conntion timed out。
      

  8.   

    会不会是我服务器上的ORACLE数据库配置上有什么问题?有什么特殊配置吗?
      

  9.   

    再检查一下ORACLE数据库配置,是否全都有到位
      

  10.   

    检查些什么呢?我对oracle不是很清楚,麻烦详细些讲一下来
      

  11.   

    感谢大家,我将ORACLE数据库配置中的第4步从专用服务器模式,改成共享服务器模式。就可以从外网访问数据库中的数据了。只是不知道这两种模式有什么不同?对服务器机器有没有什么影响?因为服务器是在用户那里的,怕用户不愿意改。
      

  12.   

    一般我们都是用专用服务器,如果你的机器配置不好如内存比较小时可以采用共享服务器模式,这样能最大限度的使用.但当有多个用户时可能在性能上要慢点.用专用服务器则是为每个客户端建立一个server process,而不互相影响.
    具体的你可以看看书,像你说的更换了服务器模式就联上了,应该不是这的问题,你要检查一下服务器上的具体设置,如tnsname,sqlnet和监听,还要看看防火墙的配置.
      

  13.   

    谢谢回复。但我好像并没有更改像你说的“服务器上的具体设置,如tnsname,sqlnet和监听,还要看看防火墙的配置.”这些,我只是改了连接模式,就可以从外网访问了。服务器机器应该配置还可以,好像是IBM的X3650服务器吧。我是oracle初学,正雾水ing。还忘不吝赐教
      

  14.   

    问题很奇怪,我访问另一个外网的局域网内的服务器,就没有上面的问题,直接能访问--专用服务器模式。但这台服务器上的是oracle9i。之前上面一直有问题的是oracle10g,难道版本不一样,内部有什么不一样的?还是我两个服务器所在的网络有问题?
      

  15.   

    如果上面所涉及的問題點都注意到了,那麼再檢查一下配置的監聽程序呢以下的代碼運行正常:    OraSession1.Server:='172.40.100.88:1521:shopfloor'; 
          OraSession1.Username:=用戶名; 
          OraSession1.Password:=密碼; 
          OraSession1.Options.Direct:=True; 
          OraSession1.Options.Net:=true; 
          OraSession1.connectprompt:=false;
           OraSession1.Connected:=true;