从你反馈的情况看,应该不是连接不上的问题。我在这种情况下,曾经遇到的问题是在存储过程中使用了insert语句,导致出现递归触发器(需要事先设置,当时我的程序需要这样),然后触发器失败,导致存储过程超时(而不出现错误)。另外第二、三种情况你已经排除了。那你看看这样可以否。 SET NOCOUNT ON //如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。 SET NOCOUNT OFF //在实际要输出数据前,关闭不输出数据============================ 另外千万不要出现在触发器中出现锁定现象,否则存储过程永远也执行不外,但在查询分析器中则可以正确执行。
连接超时怎麽就是调用存储过程的隐患呢,一般情况下的超时有如下原因
1.连接字符串无效,这个最常见,排除方法是在设计期连接看是否会出现超时的情况
2.程序运行时使用了不同版本的连接数据库DLL,我在Win98下就曾经出现SQLServer的不同Dll的版本兼容问题
3.网络速度特别慢,有这种情况时建议通过TCP/IP的方式连接
另外提醒你的是
Ado下使用存储过程是没有问题的,但不同的数据库使用存储过程的方法不相同,要注意其差别之处。
個人認為主要就是第一個﹐期它的在做項目的時候應該很難出現
to hhytsoft(雨中独行) ,你说的情况
1、连接字符串无效,这个最常见,排除方法是在设计期连接看是否会出现超时的情况
也出现连接超时,但运行其他存储过程时执行正常(如果修改正在运行的存储过程本身变 成一个普通的查询,而去掉一些排序和一些运算,则也能正常执行);
2、程序运行时使用了不同版本的连接数据库DLL,我在Win98下就曾经出现SQLServer的不同Dll的版本兼容问题
我装了两个数据库(ms sql2000/7.0),所以这个是有可能的(我现在没有条件试,服务器也是ms sql2000/7.0),但应该如何解决呢?
3、网络速度特别慢,有这种情况时建议通过TCP/IP的方式连接
我公司的网络是100m的,并且我有的存储过程的运算和处理更复杂、数据量更大,也不存在超时,所以我想这个原因不存在。请你多指教
和ConnectionTimeOut无关,我已经试过了
SET NOCOUNT ON //如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。
SET NOCOUNT OFF //在实际要输出数据前,关闭不输出数据============================
另外千万不要出现在触发器中出现锁定现象,否则存储过程永远也执行不外,但在查询分析器中则可以正确执行。