超难: ADO/BDE连接SQL Server,TADOQuery/TQuery执行SQL语句出现"Lick time out \n SQL Server 连接超时"
1. 因为是调用存储过程进行大数据量处理,所以时间长。这里不必考虑SQL语句效率的问题。
2. 开始执行SQL语句后,5-6分钟后出错:"Lick time out \n SQL Server 连接超时"
3. SQL Server 2000 + sp3, TCP/IP协议连接, DBNETLIB.DLL版本是 8.0.341 (2004-8-16)
4. DBE的TDatabase设置了"MAX QUERY TIME=1800", 甚至还有"Command Time Out=1800" (这是俺自己加的)
5. 数据库安装在2个不同数据库服务器中, 都出现同样的错误, 在服务器上执行客户端程序(C++Builder), 同样出错
6. 已经在企业管理器中 - 服务器 - (右键) - 属性 - 连接 - 查询超时设定 - 1800
执行 sp_configure可以看到下面的内容:
remote query timeout (s) 0 2147483647 1800 1800
7. SQL语句的第一行是"SET LOCK_TIMEOUT -1"
8. 在查询分析器中执行同样的SQL语句, 不超时
9. 俺说它难,是因为在B++Builder和Delphi两个版中搜索出同样问题的帖子, 但没有看到准确的回答. 俺知道, 难者不会, 会者不难. 只需要高手几句话, 问题就解决了. 先谢谢了!!!
问题点数:100、回复次数:9Top
1 楼Kshape(C/C++初学者~~~~)回复于 2005-02-06 13:56:35 得分 20
用ADO编程建议看看李维的那本ADO的书,会对ADO是如何干活的有所了解。
只有5至8个客户端应该不算多吧
如果是计算量真的很大、很多,把ADO组件的超时设长一些,或者........干脆设成0算了,那就不超时了
Top
2 楼Kshape(C/C++初学者~~~~)回复于 2005-02-06 13:57:24 得分 20
如果是超时已过期
是因为你的程序太长的时间没有访问数据库,为了数据库的高性能,服务器将你的连接断开了,在sql server上有这方面的设定(听别人说的,我没找到),还有一种方法,就是让你的程序每个一段时间访问一下数据库,或者用离线方式,浏览数据。
Top
3 楼Kshape(C/C++初学者~~~~)回复于 2005-02-06 13:59:13 得分 20
选中Microsoft SQL Servers-->工具栏,工具-->选项-->高级-->连接超时-->改为0
ADO的:
NonnectionTimeout 属性连接时间长一点;
CommandTimeout 属性执行时间长一点!
‘B++Builder’是什么东东?
Top
4 楼jblcj(我是谁)回复于 2005-02-06 14:52:56 得分 10
没看明白Top
5 楼smiler007(笑一笑)回复于 2005-02-06 18:32:09 得分 20
把AdoQuery组件的CommandTimeOut设成0,加大CacheSize的值Top
6 楼Jpp(不懂装懂)回复于 2005-02-06 19:36:28 得分 0
To Kshape([伟大的大伟!])
这个系统的并发用户数不止5、6个,都使用正常,就是在一个功能中调用有大量数据整理操作的存储过程时出现错误。
出现错误好像不是因为我的程序太长的时间没有访问数据库,而是访问数据库的时间太长了。
“B++Builder’是什么东东?”打错了,是C++Builder,这个您是知道的。
To smiler007(笑一笑)
我只是调用存储过程,它并不返回数据集,还需要加大CacheSize的值吗?
查询超时设定 - 1800,这是半小时,MAX QUERY TIME=1800 这也是半小时,问题是我的程序只执行了5-6分钟。
NonnectionTimeout 属性连接时间也需要1800吗?
Top
7 楼lianshaohua(永远深爱一个叫“...”的好女孩儿!)回复于 2005-02-06 23:12:15 得分 10
设置一下试试吧,Top
8 楼Jpp(不懂装懂)回复于 2005-02-07 01:09:03 得分 0
添加了如下的语句,出错现象依旧:
ADOConnection1->CommandTimeout =0;
ADOConnection1->ConnectionTimeout = 0;
Top
9 楼Jpp(不懂装懂)回复于 2005-02-07 02:47:51 得分 0
我已经解决了。再等几天,看看有没有正确答案。Top
相关问题
- 关于DELPHI BDE TQUERY问题
- 请问TQuery的SQL支持substring(str,n,n)吗?
- 如何发布bde,表类型是paradox7的.控件是TQuery
- TADOQuery控件有类似TQuery的ParamByName方法么?
- TQuery不使用BDE如何连接Paradox数据库
- BDE的TQUERY控件打开DBF表时的问题?
- 如何才能获得TQuery(BDE)的RecNo和RecordCount?
- 是不是我的BDE连接不成功导致我的TQUERY不成功!
- 奇怪,TQuery,用BDE连接Sybase,EOF,BOF,IsEmpty不起作用?看里面:
- BDE 下的TQuery支持返回多个数据集的查询吗?




