CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

超难: ADO/BDE连接SQL Server,TADOQuery/TQuery执行SQL语句出现"Lick time out \n SQL Server 连接超时"

楼主Jpp(不懂装懂)2005-02-06 13:05:48 在 Delphi / 数据库相关 提问

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支持返回多个数据集的查询吗?

关键词

  • c++builder
  • 语句
  • 连接
  • 数据库
  • 执行
  • ado
  • 属性
  • 服务器
  • 存储过程
  • 查询

得分解答快速导航

  • 帖主:Jpp
  • Kshape
  • Kshape
  • Kshape
  • jblcj
  • smiler007
  • lianshaohua

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo