我按照邹建大侠提供的方法连接Internet SQL数据库,但是总是不成功,不管用ADODB连接还是RDS,结果都一样,提示“SQL Server不存在或拒绝访问”,请教原因。我的设置如下:
SQL服务器端:
    1、用科迈提供的域名转换,域名为flyingbird.kmip.net,可以正常访问。SQL没有设置winsock代理,因为用的是ADSL,IP总会变化;
    2、MSDE,已经安装了SP3补丁;
    3、网络库已经加入了TCP/IP协议,端口默认。
客户端:
1、在局域网内,通过代理上Internet(需要在IE里设置代理,192.168.1.1:3128),可以正常访问Internet;
    2、ADO连接字串为:
    Provider=SQLOLEDB.1;Persist security info=True;Network Library=DBMSSOCN;Data Source=flyingbird.kmip.net(换成IP也不行);Initial Catalog=biblio;User id=xxx;Password=xxx
    
    RDS代码为:
    Dim Dc As New RDS.DataControl
Dim Rst As New ADOR.Recordset
    Dc.Connect = "dsn=remotesql;uid=xxx;pwd=xxx;"
    Dc.Server = "flyingbird.kmip.net"
    Dc.SQL = "select * from 供应商"
    Dc.Refresh
    While Dc.ReadyState = 2
        DoEvents
    Wend
    都是连接不成功;
    3、客户端无法从“查询分析器”访问SQL,也无法在“企业管理器”里注册;
    4、客户端网络已经设置好TCP/IP协议。
    
我还有什么没有设置好的或代码有什么不对,请各位达人不吝赐教,不胜感谢!

解决方案 »

  1.   

    晕,我的SQL服务当然是默认1433端口的,在连接字符串后加上端口号也不行,应该不是你所说的原因,谢谢!
      

  2.   

    http://www.51windows.net/pages/ado/?url=/pages/ado/mdhowrdstutorial.htm
      

  3.   

    谢谢雪貂的回复,你给出的那些其实只是ADO帮助文件里的内容,对我来说用处不大。其实我现在的主要问题是连接问题,而不是代码的问题。
      

  4.   

    云卷云舒
    我对你的问题不懂,
    但我有个问题请你指教一下,
    VB在INTERNET如何取出SQLSERVER2000的数据
      

  5.   

    To: chemanellenguo(冷风)
    只要能成功连接,操作与本地局域网是一样的。
      

  6.   

    Public cn As New ADODB.Connection
    cn.Open "Provider=SQLOLEDB.1;Password=用户密码;Persist Security Info=False;User ID=用户名;Initial Catalog=数据库名;Data Source=服务器ip,1433;Server=sql服务器铭"这样试试。
      

  7.   

    不知道你安装Sql Server 的服务器上有没有安装防火墙,如果安装了防火墙,那么你的1433端口默认情况下是被关闭,需要对防火墙的设置进行更改.
      

  8.   

    另外你在别的机器上尝试ping flyingbird.kmip.net 看看能不能通,你用的动态域名解析吧?
      

  9.   

    To xihongjian(踏上编程路) 一样不行的。
    To miracle888()  是装了防火墙,但我已经把防火墙关闭了
    To hank212 不是固定IP,用的是动态域名解释谢谢各位,我用ADO直连现在已经解决了,原来是局域网内端口问题。但是直连有安全性问题,所以我想用RDS,但RDS还是不成功!
      

  10.   

    可否知道你做的什么项目?
    如果处于安全考虑,最好基于Socket 开发自己的服务器 ,客户端不和数据库直接相连,所有工作都是向Socket Server发送消息,然后由Socket Server去执行相应的数据库操作.