数据库为SQLSERVER2000,ADOConnection连接成功,但用ADOQuery执行查询时说连接失败,一般性网络错误,当以机器名来设置服务器时有此错误,当改用IP地址或在ODBC中配置一个命名管道连接时没有此问题
不知是什么原因?

解决方案 »

  1.   

    sp_addlinkserver (计算机名)
    好象是这么写的
    查查帮助
      

  2.   

    能用IP访问最好用IP,机器名还要解析,而且经常出现不能访问(跟网络设置有关)的问题!
      

  3.   

    楼上各位说的很对,最好用IP访问。
            我也遇到过。楼主,首先,应该保证你的AdoConnection是不是动态连接。如果是动态连接话,自已做一个文件用于读取connnectionstring,写入到ini文件,就不会了.
      

  4.   

    ADOQuery执行了什么查询?如果查询太复杂,sql server执行不了的。参考:http://community.csdn.net/Expert/TopicView.asp?id=3739278
      

  5.   

    ADOCONNECTION 里登陆验证LoginPrompt,如果有请把他选择为FALSE。
      

  6.   

    查询不复杂,就一个select语句也出错
    忘了补充,网络是动态分配IP地址,所以用IP连接不太合适
    局域网没有DNS,LoginPrompt也是false
    Connection是动态连接,但程序启动时动态设置ConnectString,应该不会有问题
    而且当执行Query时检查Connection的状态也是连接的,只是一Open就出错
    如果设置一下ODBC为命名管道连接也没有问题
      

  7.   

    而且这错误也不是偶然出现的
    只要当没有配置ODBC或配置为TCP连接方式,又以计算机名连接服务器时就会出现上述情况
    只是不明白为什么会出现这问题,解决办法也有不少,用IP连接或设置ODBC
    又想起一点,当新建一个小工程,用同样的代码连接又没问题,没找到二个工程在连接上的区别有哪里
    不知和ADO控件有没有关系,要说网络连不上那ADOConnection也应该有反映啊:(
    现在是ADOConnection能连上,而ADOQuery不行*^)*&T&*(%^*
      

  8.   

    看看SQL服务器网络实用工具,把其中的一个命名管道或者是TCP/IP禁用再尝试连接看看
      

  9.   

    不用ADOQuery作连接,让ADOQuery1+ADOConnection1+Datasource1+DBGrid1,再OPEN
      

  10.   

    我也碰到和楼主同样的问题,并且我用ADOConnection1连接写的是数据库服务器的IP,也会出现同样的问题。
      

  11.   

    有个属性叫 loginprompt,你看是不是设为TRUE了,如果是改为FALSE就好了。我遇到同样的问题这样改好的。
      

  12.   

    我的ADOQuery是通过ADOConnection连接,所以理奇怪ADOConnection是连接的,ADOQuery却出错
    loginprompt是false的
    还在希望是能不用做特别的设置就能解决问题,想找到问题的原因
      

  13.   

    如果用sp_addlinkserver 是要把客户端的所有机子都加一遍?
      

  14.   

    应该是sql太复杂而导致的,可以优化sql语句或者换个方法来做,提示一下不要用ADOQuery,用别的ado***呵呵!我也遇到过!
      

  15.   

    应该是网络问题,如果是动态分配IP,请先设置固定IP,然后用PING 测试一下网络通讯质量,因为很有可能是查询时数据流量增大,当网络通讯质量很差时可能引起这种现象!
      

  16.   

    查询语句是很简单的,就一个select,也没几条记录
    设置一下ODBC就出现不一样的情况