关于VB中ADO远程连接数据库的困惑,请教大家

sakurakid 2004-10-15 08:25:17
我用VB做了个远程数据库访问的软件,有几个问题不明白,希望大家帮帮我
在服务器上装有SQL server,并建好名为DBstu的SQL数据库,用户名:sa,密码:database,服务器的IP是:218.62.*.*
软件访问数据库的部分大概是:
ADO引用,DATAGRID控件
代码:
Option Explicit
Dim adoConnection As ADODB.Connection
Dim adoRecordset As ADODB.Recordset

Private Sub Form_Load()
Set adoConnection = New ADODB.Connection
adoConnection.Open "Provider=SQLOLEDB.1;Password=database;Persist Security Info=True;User ID=sa;Initial Catalog=DBstu;Data Source=218.62.*.*"
Set adoRecordset = New ADODB.Recordset
adoRecordset.CursorLocation = adUseClient
adoRecordset.Open "student", adoConnection, adOpenKeyset, adLockBatchOptimistic
'student为数据库DBstu中的一个数据表
Set DataGrid1.DataSource = adoRecordset
End Sub
问题是:
1、这个程序我在服务器上使用时能够连得上(用的是外网IP,就是上面的218.62.*.* ),但是再其它机子上(可以上网的)却连不上,显示 链接错误,SQL Server 不存在或访问被拒绝
2、假如ADO能够连上SQL数据库后,我想知道这种方法能够同时连接几个用户?

问题可能对你们来说很简单,但我真不懂,很急,希望大家能够帮忙,谢谢
...全文
502 点赞 收藏 33
写回复
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
感觉不是程序的问题,而是在网络设置上的问题。
回复
iser2003 2004-10-18
楼主:你的这个问题我肯定可以解决!
  我是在局域网内一台SQL服务器(通过windows认证的)通过路由器进行端口定位到1433,远程终端只要提供登陆名和密码在SQL服务器上注册就行了。---我已经成功使用了动态域名!


重重说明一点:sql服务器在有远程连接对数据处理一段时间后sql服务器的系统字体会越来越小同时系统资源也一样,至今我都没找到解决的方法希望我们可以探讨:myqq:26435044

附(我的SQL服务器):win2000ad+sql2000+sp3+cpu3.06G+内存512*2MB
回复
sakurakid 2004-10-18
我问二个额外的问题,假如我知道SQL服务器的IP,用ADO连接数据库时,怎么用程序代码实现列出SQL服务器上的所有数据库,就象使用ADO控件那样列出?选择好数据库后,怎么用程序代码实现列出所选数据库中的数据表?
回复
GGL123 2004-10-18
不能,不懂。
回复
sakurakid 2004-10-18
谁能告诉我
driver={SQL Server};server=218.62.*.* ;uid=sa;pwd=database;database=DBstu;
这个连接字符串是怎么生成的?能自动生成吗?
回复
a达哥a 2004-10-17
你的服务器是外网的, 其他机器是内网的, 有可能你的机器是用共享上网的, 也就是说其实你的服务器和内网的电脑并不是一个IP网段的, 所以用Data Source=218.62.*.*可能不行哦, 用服务器名代替IP地址看看, 或则SQL不要装这台电脑, 改装其他内网机器看看, 内网的机器互相可以访问的话, SQL应该没问题的
回复
sakurakid 2004-10-17
driver={SQL Server};server=218.62.*.* ;uid=sa;pwd=database;database=DBstu;
我以前没有用过这种连接字符串,它是怎么生成的?它也可以象
Provider=SQLOLEDB.1;Password=database;Persist Security Info=True;User ID=sa;Initial Catalog=DBstu;Data Source=218.62.*.*"
这个连接字符串一样用ADO控件创建自动生成吗?
回复
vbman2003 2004-10-17
其实Ping服务器除了防火墙外,也有可能是服务器作了相应的设置。关键是其它机器能不能访问服务器,比如共享文件和网络打印
回复
sakurakid 2004-10-17
To helanshan(C++)

连接ODBC数据源
driver={SQL Server};server=218.62.*.* ;uid=sa;pwd=database;database=DBstu;
为什么是 driver={SQL Server}? DBstu是SQL数据库还是数据库的ODBC数据源名称?

这个连接字符串结果和
Provider=SQLOLEDB.1;Password=database;Persist Security Info=True;User ID=sa;Initial Catalog=DBstu;Data Source=218.62.*.*"
在我机子上试是一样的。
回复
vbman2003 2004-10-17
你不能Ping通服务器,所以首要问题是解决网络问题,从硬件到软件配置逐项检查。你的程序在服务器上可以正常运行,也许没有什么大问题,解决了网络问题,也许一切就迎刃而解了。
回复
GGL123 2004-10-17
关注
回复
sakurakid 2004-10-17
配置成ODBC数据源后,连接字符串是这样吗?
Provider=MSDASQL.1;Persist Security Info=False;Data Source=stu_odbc
stu_odbc 是这个数据库的ODBC数据源名称
回复
sakurakid 2004-10-17
真麻烦呀,
问一下,假如服务器装好SQL,并且其它机子能够PING得到服务器,那我用刚开始提出的那种方法是不是一定能连的上服务器?有没有人用这种方法连过,指点一下
回复
lxcc 2004-10-17
我系统是windows server 2003,系统自带的防火墙我也关了。还Ping不到是怎么回事?

因为你的OS是2003,所以SQL需要升级到SP3
回复
helanshan 2004-10-17
连接ODBC数据源:
driver={SQL Server};server=218.62.*.* ;uid=sa;pwd=database;database=DBstu;
回复
helanshan 2004-10-16
那你将要连接的数据库配置成ODBC数据源后,再试试。。。
回复
vbman2003 2004-10-16
好象连接字符串没问题
其它机器能Ping通服务器吗?服务器上有没有防火墙?关了试试
回复
sakurakid 2004-10-16
那我该用
Provider=SQLOLEDB.1;Password=database;Persist Security Info=True;User ID=sa;Initial Catalog=DBstu;Data Source=218.62.*.*"
是吗?
会不会是我SQL数据库的问题?
回复
helanshan 2004-10-16
driver={SQL Server};server=218.62.*.* ;uid=sa;pwd=;ConnectionTimeout=0;database=northwind

Provider=SQLOLEDB.1;Password=database;Persist Security Info=True;User ID=sa;Initial Catalog=DBstu;Data Source=218.62.*.*"
两个连接字符串有什么区别?
1、是使用Microsoft ODBC提供者进行连接。
2、是使用Microsoft SQL服务器提供者进行连接
回复
sakurakid 2004-10-16
哪位大哥建好个SQL数据库让我连一下好吗?拜托了,谢谢
回复
发动态
发帖子

1180

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
社区公告
暂无公告