当前位置:主页>仓库管理软件> 列表

用DELPHI中的ADO连接访问本地数据库,只能用SQL的

进销存管理软件版1楼: 我用DELPHI编程,用ADO建立连接
ADO.CONNECTION:=''.......DATE SOURCE=处只能加SQL的服务器名,却不能用127.0.0.1,为什么?怎么解决这个问题?
还有如果用SQL的服务器名,怎么获得本地的SQL的服务器名(通过DELPHI编程).

2楼: 补充说明.我的操作系统是WIN XP,SQL SERVER是2000.没有装任何补丁. 如免费档案管理软件

3楼: 我曾遇到同样的问题,应该是网卡没有连接网络造成的,如果是本地数据库,用‘.’就可以表示本地服务器名的。

4楼: 是呀.我也是遇到这个问题,网卡没有连接时,会这样.那怎么可以解决呢?在固定127.0.0.1的时候,怎么办可以让网卡没有连接的情况下,实现呢?

5楼: 网卡没有连接的话,不认识IP地址的,只能用机器名代题

6楼: 试试DATE SOURCE=ip,端口号

进销存管理软件版7楼: 回答:zsy146
如果网卡连接的情况下,SQL SERVER也不能使用127.0.0.1,为什么呢?

回答:jjfeng66
date source=ip,端口号,是什么意思呀?能详细一点吗?

8楼: 我觉得你要连数据库直接用“机器名”或“IP”,
这样不管是“单机”还是“网络”都通用了。
(127。0。0。1太局限了)

9楼: 就是date source=127.0.0.1,1433

10楼: 我是要连接的数据库,用IP可以吗?不是要用SQL的数据服务器名吗?

11楼: 回答:jjfeng66


用127.0.0.1不行的情况下,用127.0.0.1,1433,是不是也不可以呀.本来都不能识别127.0.0.1呀?

12楼: ping 127.0.0.1 通吗 如管家商铺进销存

13楼: 应该是网卡问题,以前我的一台电脑填127.0.0.1通的,昨天用时不能用了,后来发现是新装了一块网卡导致。所以建议检测绑定的网卡

进销存管理软件版14楼: sql7没有这个问题,sql2000中的问题按如下方法解决:
运行:D:\WINNT\system32\cliconfg.exe(客户端网络实用工具),将协议的顺序改变一下就好了,named pipes|Tcp/ip,一定要将named pipes(命名管道)排在前面

15楼: 回答ahhlian:
这样做就可以解决这个问题了吗?

16楼: 我试了.不行呀.

17楼: 其实直接输入''.''或''127.0.0.1''或''localhost''有一个条件的限制,
那就是SQL的服务器名的设置,应该这样说吧,我都不喜欢记那些名词和概念,当你在按装SQL的服务器的时候,如果你不默认系统按装实例,而采取另一个实例,这就会出现这种情况,
例如:系统默认SQL的服务器名是 GJOYJM-HOI, 你装了实例名QOZ,SQL的服务器名就是
GJOYJM-HOI/QOZ,在这种情况就是限制

18楼: 还有就是你的sql版本有问题,你说的问题我遇到过一次,我按上面的方法就搞好了

19楼: 我用, 如管家婆软件,IP输入,127.0.0.1,网线拔掉也就不行了.

20楼: 可以用本机的ip,代替127.0.0.1,应该可以的.

进销存管理软件版21楼: 我也觉得可能是跟SQL的版本有关系,而且跟网线的插拨也有关系.真的不知道该如何解决网线插拨时出现的问题.怎么办?

22楼: WINDOWS里面有个服务,叫做什么自动探测媒质,这个服务会自动探测网线是否插入。关闭这个服务后就可以在任何情况下使用127.0.0.1这个地址了。


跟SQL版本无关吧。

23楼: 回答xf47:
我找了一下WINDOWS的服务,没有找到你说的那个自动探测媒质,能详细说一下吗?

24楼: 你看你的SQL 客户端网络实用工具中,启动的协议是不是: TCP/IP NAMED POPES
启动共享内存协议是否勾选!

25楼: 回答babyvs:
已经看过了.是.

26楼: 其实并不是SQL版本的问题,当没有安装新的实例的话,它的服务器名就是本地机器名

27楼: 是呀.这点我清楚.

进销存管理软件版28楼: 如果你是用的win98系统或10M网卡就不会出现这样的情况,解决办法:
做一个网线头如下:1=3,2=6的方法接起来,插出网头就可以了....随便你设成什么IP都行!!![:D]

29楼: 不会吧.还可以这样呀.那如果是自己的机器当然好了.可是程序是要给客户用的.我总不能让客户这样做吧.

30楼: 这是你的网络协议不正确造成的。
你更改一下客户端与sqlserver连接的网络协议,把管道命名协议改称Tcp/IP协议。

31楼: 网络协议已经更改成你所要求的样子.

32楼: 一般跨网段时用ip,同一个网段中用名字就好了

33楼: 我的这个不确定是不是跨网段的.
可能一部分客户端是跨网段的,一部分不是,所以用IP地址去访问的.

34楼: 实列名看SQL SERVER 系统托盘上的图标 点出来显示的就是服务名了

进销存管理软件版35楼: 收到.我知道怎么找实例名了.原来程序中用的就是实例名呀?

36楼: 因为你用SQLSERVER所以弄混了。ADO连接用的是SQLSERVER服务名,机器名和IP都不行。只是SQLSERVER和操作系统结合的紧了,服务名往往是机器名,所以混淆了。
用ADO连Oracle或其他数据库就知道了,Ado只连接本地客户端,通过客户端连接数据库服务器。SQlserver的客户端从WIN98 SEcond支持ADO以来就固化到操作系统里面了。因此没有按照msde.

37楼: 很简单,该问题我也碰到过,不过操作系统是win2003,必须安装sql server的补丁。
楼主可以到我的ftp下载:
地址: ftp.mlfjnp.com
帐户: temp 密码: temp

38楼: adoconnection连接肯定可以,因为我编过 但代码记不得了,win98系统要加一定.dll驱动

39楼: 多人接受答案了。