因程序编写需要,急需解决VB 数据库远程(通过Internet)访问难点,之前在网上找到过很多类似的提问,但是均只能解决本地局域网内访问,未能解决通过Internet访问,先我讲我的SQL访问程序断写出,请各位高手专家指点迷津,小弟不胜感激!
Public Function OpenCn(ByVal Cip As String, ByVal users As String, ByVal pw As String) As Boolean '连接模块 填写数据库等信息
Dim mag As String
On Error GoTo strerrmag
Set conn = New adodb.Connection
conn.ConnectionTimeout = 25
conn.Provider = "sqloledb"
conn.Properties("data source").Value = Cip     '服务器的名字
conn.Properties("initial catalog").Value = "test"          '库名
conn.Properties("user id").Value = users 'SQL登录用户名
conn.Properties("password").Value = pw '密码
conn.Open
OpenCn = True
If conn.State = 1 Then addFlag = True
Exit Function
strerrmag:
     mag = "Data can't connect"
     Call MsgBox(mag, vbOKOnly, "Error:Data connect")
     addFlag = False
     Exit Function      '连接错误消息
End Function以上程序段是网上参考修改的,局域网内测试没有问题,但是访问外网的IP的时候就不行,请各位高手专家指点迷津。
情况说明:所谓外网IP测试的时候是在同一局域网内另外一台电脑是装了“花生壳”软件动态域名解析而来,局域网的路由器特定端口指定已设好。

解决方案 »

  1.   

    我也发生过这种情况,路由器设置了端口映射也无法连接!
    除非单机用Modem直连,就可以连接!你可以试试建立一个ODBC数据源(控制面板—管理工具—数据源(ODBC))
      

  2.   

    用ODBC数据源配置,没有链接问题的。
      

  3.   

    用一个 WEBSERVICES 做中间层.
      

  4.   

    conn.Properties("data source").Value = Cip     '服务器的名字
    改成ODBC数据源的名字在ODBC中配置的时候,服务器输入花生壳的域名(即xxxxx.vicp.net)
    在局域网内PC上装花生壳是不能用的
    必须在路由器上设置花生壳信息(如果路由器不支持,建议升级路由器或更换路由器)
    然后将局域网内服务器作为DMZ主机,在路由器中配置。
    这样就OK了。
      

  5.   

    conn.Provider = "sqloledb" 变成conn.Provider = "MSDASQL"