首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

(100分)内网可连接SQL,外网不行?该如何处理

2012-01-14 
(100分)内网可连接SQL,外网不行?这是我的一段代码,局域网内运行正常,换一台局域网外的一台上网电脑不能连

(100分)内网可连接SQL,外网不行?
这是我的一段代码,局域网内运行正常,换一台局域网外的一台上网电脑不能连接?
我的使用环境:
局域网:全部是win2k   pro中文版+sp4     ,sql2000个人版+sp3
    采用宽带路由器接入(路由器IP:192.168.1.2,网内PC   IP地址:192.168.1.xxx)
局域网外电脑:win2k   pro中文版+sp4
用局域网外电脑连接网内SQL时是这样测试的:
先获得网内需要连接的电脑的外部IP地址(登陆www.ip138.com即可获得),然后将该IP地址替换   "192.168.1.100 ",还是不行
该代码在局域网内使用时一切正常,请高手帮我看看问题在哪?


Option   Explicit
Public   adoConnection   As   Connection
Public   adoRecordest   As   Recordset

Public   Function   OpenCn()   As   Boolean     '连接数据库
        Dim   mag   As   String
        On   Error   GoTo   strerrmag
        Set   adoConnection   =   New   ADODB.Connection
        adoConnection.ConnectionTimeout   =   30                                                    
        adoConnection.Provider   =   "sqloledb "                                                    
        adoConnection.Properties( "data   source ").Value   =   "192.168.1.100 "        
          adoConnection.Properties( "initial   catalog ").Value   =   "Date_01 "  
        adoConnection.Properties( "integrated   security ").Value   =   "SSPI "  
        adoConnection.Open

          OpenCn   =   True
          addFlag   =   True
          Exit   Function

strerrmag:
        mag   =   "数据库不能连接! "
        Call   MsgBox(mag,   vbOKOnly,   "错误 ")
        addFlag   =   False
        OpenCn   =   False
End   Function


Public   Function   openrs(ByVal   strSQL   As   String)   As   Boolean   '连接到数据集  
        Dim   mag   As   String
        Dim   rpy   As   Boolean
        On   Error   GoTo   strerrmag
        Set   adoRecordest   =   New   ADODB.Recordset
        If   addFlag   =   False   Then   rpy   =   True
        With   adoRecordest
        .ActiveConnection   =   adoConnection
        .CursorLocation   =   adUseClient                    
        .CursorType   =   adOpenKeyset                            
        .LockType   =   adLockReadOnly                                          


        .Open   strSQL   '注:此strSQL连接字符已设好了
        End   With
        addFlag   =   True
        openrs   =   True
 
        Exit   Function
strerrmag:
        mag   =   "不能打开数据集! "
        Call   MsgBox(mag,   vbOKOnly,   "错误 ")
        openrs   =   False
        End
End   Function


[解决办法]
外网的SQL的条件:
远程服务器的1433端口是否打开?把SQL2000打上SP4补丁。
[解决办法]
在宽带路由器上将内网的SQL Server设置在DMZ区。
或者,在宽带路由器上设置1433端口映射到内网的SQL Server上。
[解决办法]
路由器作端口映射了吗?
[解决办法]
架一个VPN服务器,通过VPN拨号连到内网应该可以
[解决办法]
你是否试过所有的外网机器都不能连接、我遇到过xp的不能用ip访问别人的数据库,只能通过机器名访问,不知道你的是否是这方面的事情
[解决办法]
你有没有在你的路由上设置端口映射?把1433端口映射到你的SQL服务器上。
[解决办法]
你把SQL Server的局域网IP地址设置到路由器的DMZ区就可以了。另外,将路由器的1433端口映射到SQL Server的局域网IP地址也行。
这样设置好了之后,你可以在外网上(注意:不是内网),通过路由器的外网IP地址来访问这台SQL Server。

[解决办法]
cssshk() ( 一级(初级)) 信誉:100 2007-3-15 14:10:54 得分:0
?
问题还没解决!
我想知道的是,不通过建VPN的方式,VB有访问外网SQL数据库的能力吗?有人实现过吗?

答:
1)VB有访问外网SQL数据库的能力。
这是肯定且毫无疑问的。
因为我就有现实的例子。
2)最简单的方法:
先建立一个连接到外部SQL SERVER的ODBC连接串(指定计算机名称时写入该计算机的IP地址就可以了)。
然后用代码就可以连接任何地方的数据库了。



[解决办法]
你用SQL SERVER的企业管理器,在里面建立一个连接外网的SQL SERVER的注册,看看能否连接成功。


═══════════════════
http://www.egooglet.com 资料、源码下载

http://bbs.j2soft.cn 论坛交流
═══════════════════
[解决办法]
能连接外网的SQL这是肯定能的,主要看你有没有防火墙阻挡,还有在路由器上要设置端口映射的,外网的机器访问Sql的话,就直接填由器的IP。
[解决办法]
不用VPN要在路由器做SQL SERVER 计算机的地址和路由器外部地址之间做端口影射.做完71.123.45.120:1433 到 192.168.100.100:1433
的影射后,访问外部地址 71.123.45.120:1433 (SQL服务)时路由器会把访问影射成内部网 192.168.100.100:1433(内网 SQL SERVER) 其他:关闭所有防火墙尝试.

热点排行