我按照邹建大侠提供的方法连接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协议。
我还有什么没有设置好的或代码有什么不对,请各位达人不吝赐教,不胜感谢!
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协议。
我还有什么没有设置好的或代码有什么不对,请各位达人不吝赐教,不胜感谢!
我对你的问题不懂,
但我有个问题请你指教一下,
VB在INTERNET如何取出SQLSERVER2000的数据
只要能成功连接,操作与本地局域网是一样的。
cn.Open "Provider=SQLOLEDB.1;Password=用户密码;Persist Security Info=False;User ID=用户名;Initial Catalog=数据库名;Data Source=服务器ip,1433;Server=sql服务器铭"这样试试。
To miracle888() 是装了防火墙,但我已经把防火墙关闭了
To hank212 不是固定IP,用的是动态域名解释谢谢各位,我用ADO直连现在已经解决了,原来是局域网内端口问题。但是直连有安全性问题,所以我想用RDS,但RDS还是不成功!
如果处于安全考虑,最好基于Socket 开发自己的服务器 ,客户端不和数据库直接相连,所有工作都是向Socket Server发送消息,然后由Socket Server去执行相应的数据库操作.