ADO连接SQL Server使用TCP/IP必须要装SQL客户端吗(50分)

Q

q1

Unregistered / Unconfirmed
GUEST, unregistred user!
SQl Server是Internet服务器,用其IP连接。程序调试时可正常连接,
程序编译后在另台机器上运行,却提示“[DBNMPNTW]找不到指定的SQL Server”,
问题是,这两台机器都未装SQL客户端,为何在调试的机器上可以连接,
而另台机器却不行,难道是delphi自带SQL客户端的功能?
另台机器是否一定要装SQL客户端?
 
如果用的是ADO的话,不需要安装。但是如果客户端已经安装了MSSQL SERVER,则需要在
CLIENT NETWORK UTILITY中设置一下服务器IP地址。
 
编译程序时把服务器名称写上就可以了
 
不需要安装客户端。
可以编一个配制AdoConnection的程序。
var
str :string;
str := PromptDataSource(Handle, ADOConnection1.ConnectionString);
 
不用的,我想是你在ADO
 
不用安装客户端,用ADO连接时,指到服务器就可以了
 
各位:
谢谢指教!我试验的情况是:
当不装客户端时,
1、在装有delphi的机器上,可以连接Internet SQL Server,当然也可以连接LAN SQL Server;
2、在另台机器上(没有装delphi),可以连接LAN SQL Server,(应当是通过Named Pipes),
但不能连接Internet SQL Server,提示“[DBNMPNTW]找不到指定的SQL Server”,
看来是欲通过Named Pipes连接而未成功,
这时,装SQL客户端,使用TCP/IP Network libraries,才可以连接Internet SQL Server。
也就是说,连接Internet SQL Server是一定要有客户端配置的。
上述结论,不知是否正确,请各位指正。
 
这和你有没有装delphi时没有任何关系的。
也不是一定要装sql-server的客户端,不过客户端你肯定要使用tcp/ip的网库,
因为默认状态下sql-server用的是named pipes网库。
既然你的服务器在internet上,那你只能用tcp/ip网库在你的客户端。
但是你在局域网内用Named pipes网库也可,用tcp/ip网库也可。
你看看sql-server的多层通讯就明白了。
 
是的,TCP/IP是通用的。
 
98二版,me,2000,xp,都不需要装客户端,
但要在odbc 32中设置成tcp/ip连结,默认连结可能是named pipes
 
同意楼上。用ODBC 32中的设置用户DNS就可以,而且安装到其他机器也很方便
 
奇怪的问题出来了:
to jerryjean
在一台没有装delphi机器上,98SE中有tcp/ip网库(DBMSSOCN.DLL),却不能连接;
to gong666
在装有delphi机器上,也没有在odbc 32中设置成tcp/ip连结,但可以连接。

这是怎么回事呀!
 
安装好MDAC就可以了.
Microsoft Data Access Control
 
看看
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1405218
 
连接Internet SQL Server是一定要有客户端配置的
 
在下已经多次试验,找到问题的关键,总结如下。

SQL Server的连接,系统确省网络使用Named Pipes,用于连接同网段的LAN SQL Server没问题,如果连接Internet SQL Server则需要TCP/IP,否则会发生错误“[DBNMPNTW]找不到指定的SQL Server”。解决这个问题有两个办法,
其一,改变系统确省网络,设置为TCP/IP;
或者,建立一个使用TCP/IP的数据库别名。

实现它也有两个途径,
通常的做法是,安装SQL Server客户端工具,用它来完成上述设置;
也可以手工修改系统注册表:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer/Client/ConnectTo
确省网络:字符串键值=DSQUERY,数据=“DBMSSOCN”
数据别名:字符串键值=MSSQL,数据=“DBMSSOCN,xxx.xxx.xxx.xxx,1433”
其中“MSSQL”(随便起名),“xxx.xxx.xxx.xxx”为SQL Server的IP。
两者有其一即可。
 
接受答案了.
 
顶部