D7+SQL 2000开发的,SQL打了补丁。
公司的机器系统为xp+sp2.双击程序,窗体启动的时候,总是隔一段时间就提示:“[DBNETLIB][ConnectionOpen(Connect()).]SQL SERVER不存在或拒绝访问”提示数次后,才可以正常的进入系统进行操作。如果说是SQL不存在什么的,按理说就不能进入系统进行操作了。可是,程序在那种提示若干次之后,最后还是可以进入系统的。这是什么原因造成的哪?更奇怪的是,在公司的其中一台机器上面,就可以很快的进入程序系统,而在别的机器上面就不行,总是出现那样的错误提示,提示若干次之后才能进入系统。这是为什么哪?这个问题困扰我半天了,搞了半天也没有找到解决的办法。大家帮帮忙吧。我使用的是ado控件,adoconnection的连接是动态的,是从文件里面读取IP,根据IP进行连接的。

解决方案 »

  1.   

    adoconnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=111111;Persist Security Info=True;User ID=11;Initial Catalog=zpdata;Data Source='+LoginIp+'';
      

  2.   

    登陆的时候,你能确定sql server已经启动吗?
      

  3.   

    wudi_1982(︻┳═一) ( ) 信誉:96  2006-07-20 16:46:00  得分: 0  
     
     
       登陆的时候,你能确定sql server已经启动吗?
      
     
    当然了,SQL SERVER服务器一直开着的
      

  4.   

    可能是你在设计阶段,打开了数据库连接,连上了你开发用的sqlserver。而程序实际运行的环境中是连不上你的开发sqlserver的。
      

  5.   

    经过大牛一提醒,想到了。。就是设计的时候,adoquery连接了另外一个台sql server,然后active设置为ture,所以你打开程序的时候,因为那些模块先创建,所以报错说sql server不存在。看看吧,估计就是这个问题。
      

  6.   

    数据模块中的ADOConnection1的Connected设置为True了。
    数据模块创建完后创建组件,而组件属性此时是设计期静态赋值的,发布后肯定不对,所以如果打开连接一定提示错误。
    待所有的组件创建完毕后执行各个事件(包括动态赋值,从文件里面读取IP,根据IP进行连接),这些事做完后第二次连接如果设置没有错误的话应该不会有问题了:)
      

  7.   

    如果采用了异构查询,查询了不同的服务器,恰好有一台没有启动,那就可能会出现这个问题!服务器端的Guest要开放出来!连接字符串最好在窗体创建时启用!
    adoconnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=111111;Persist Security Info=True;User ID=11;Initial Catalog=zpdata;Data Source='+''+LoginIp+'';
      

  8.   

    还有一个问题,为什么在其中的一台机器上面(非SQL服务器)就可以正常运行哪?而在其它的机器上面就不行了。如果是程序问题,是不是应该在所有的机器上面都有问题哪?
      

  9.   

    会不会是没有装ODBC驱动程序造成的?
      

  10.   

    是不是ADO连接有问题。建议楼主看看ADO和数据库的连接时候正确