我有delphi做了一个软件,连接到远程的SQL,客户端都是连接失败但是如果你在客户端装了SQL,或者在ODBC里面配置了一个别名,选择tcp/ip方式(配置好后删除也没有关系),这个软件就能连接成功,这是什么回事呀,,,,,,,,,
 我用ADO可能就是我说的,有没有办法修改默认的连接协议呢,修改为tcp/ip

解决方案 »

  1.   

    客户端一定要安装sql客户端的,否则怎么能访问数据库呢?
    要不呢的软件里面自带并安装了mdac?
      

  2.   

    不会的吧,做一个软件不可能每个客户都安装SQL客户端的呢
    那多麻烦
      

  3.   

    安装客户端的时候,选择“连接驱动”(大概这么个意思)就行了。
    或者简单的,复制几个客户端需要的文件即可。
    包括:
    ntwdblib.DLL <<-- DB_Library(必须)
    可选,只要保留其中一个:
    dbnmpntw.dll <<-- 命名管道网络库
    dbnetlib.dll <<-- TCP/IP网络库如果你想仅仅使用TCP/IP呢,就不要复制dbnmpntw.dll给客户端。
    ====================
    其实,你的问题应该是缺少这些驱动。有了这些驱动就可以了。命名管道和TCP一般都可以连上的。另外,如果多个网络库安装了,也可以更改默认的协议,在“客户端网络实用工具”中,调整启用的网络协议顺序。
      

  4.   

    或者在ODBC里面配置了一个别名,选择tcp/ip方式(配置好后删除也没有关系),
    =====================
    就是上面说的,设置一下就行也不用安装SQL客户端呀,我不可能给每个客户安装SQL客户端的............
      

  5.   

    在客户端用cliconfg配置.将默认的网络库改为TCP/IP,或者为要连接的服务器单独建立一个别名也可以.
      

  6.   

    不对吧,我用ADO连SQL,如果填上主机名,可能连不上,但可以填上IP地址连上去的,
      

  7.   

    填上IP地址就应该是使用TCP/IP了,而不是命名管道