ASP 查询超时解决

来源:互联网 发布:宁夏干部教育网络培训 编辑:程序博客网 时间:2024/04/30 23:27

本人在利用Sqlserver作全文搜索中, 发现因为待查询表不断增大,ASP查询页面经常会出现ODBC DRIVER: Timeout Expired 错误。
查询google和试验良久,终于解决,现总结如下:
1、 检查数据库’连接”选项中的查询超时设定,根据需要可取个大值,或干脆设为0(无限制)
2、 在ASP页面代码中加入以下各项,注意要全部设定,只设一项经过我试验是不行的:
<%Server.ScriptTimeout=360%>1) 在数据库连接字符串中增加超时设置,如:
 “....;PWD=password;Connect Timeout=0”
2)Connection对象的CommandTimeOut属性:
 con.CommandTimeOut = 360
3)Command对象的CommandTimeOut属性:
Command对象不会继承Connection的这一属性, 
所以对可能超时的Command也要单独设置CommandTimeout属性.
最后,如果这样还是不行,那可能是浏览器的设置有问题:
1. 在注册表中HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings中加一DWORD类型ReceiveTimeout,值设为比如8个9. 
2. restart computer.
Notes:
很多人喜欢用”On Error Resume Next...If Err.Number<>0 处理错误Else....”将页面错误屏蔽掉,这样就不会把数据库出错的信息都无保留的展现给客户。调试的时候,可以通过输出错误描述和代码来查看错误信息:err.Description、err.Number、err.Source等

说明:本问题解决参考了很多网上资料,无法一一列出,如有雷同,应属正常