CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

急!急!急!如何能用asp检测远程数据库无法连接并返回结果(不是通过页面出错来提示结果).

楼主fsyxb()2005-11-21 12:06:47 在 Web 开发 / ASP 提问

asp页面通过ODBC数据源连接远程数据库,有什么办法可以使客户端发出连接要求后,若在指定时间内都连接不上时或者无法返回响应结果,客户端能关闭连接?  
  我的目的是要使远程数据库(oracle)不要产生太多进程,既然连接不上了,就关闭连接,以保证在数据库中能关闭该进程. 问题点数:50、回复次数:8Top

1 楼tomtown530(梦想一定会实现!)回复于 2005-11-21 13:21:18 得分 0

on   error   resume   next  
        conn.open   connstr  
  if   err.number   <>   0   then  
        conn.close  
        set   conn   =   nothing  
      response.write("can't   build   connection   now.<br>error   info:"   &   err.description)  
  end   ifTop

2 楼fsyxb()回复于 2005-11-21 13:29:33 得分 0

但用on   error   resume   next好象会把所有的错误都跳过的呀!Top

3 楼tomtown530(梦想一定会实现!)回复于 2005-11-21 13:33:23 得分 25

因此把这句只能放在conn.open这句的上面,紧紧跟随,这样检测出来的错误就是连接时的错误.  
  if   err.number   <>   0   then  
        conn.close  
        set   conn   =   nothing  
      response.write("can't   build   connection   now.<br>error   info:"   &   err.description)  
  end   if  
  这些也要紧随conn.open之后  
  在end   if我在补充一句  
  err.clearTop

4 楼fsyxb()回复于 2005-11-21 13:35:57 得分 0

谢谢,试试,行就马上结贴,不行再请教.Top

5 楼fsyxb()回复于 2005-11-21 15:46:46 得分 0

还是不行,我做了如下的测试页面:  
  <%public   conn  
  Response.Expires   =   -1  
  Response.ExpiresAbsolute   =   Now()   -   1  
  Response.cachecontrol   =   "no-cache"  
     
  Set   conn   =   Server.CreateObject("ADODB.Connection")  
  conn.Open   "ORACLE_TEST","test","test"  
  on   error   resume   next  
  if   err.number   <>   0   then  
        response.write   err.number  
        conn.close  
        set   conn   =   nothing  
        response.redirect   "warning.asp?tmperror=13&errinfo="&   err.description  
  end   if  
  err.clear  
  conn.close  
  set   conn   =   nothing  
  response.write   err.number  
  %>  
  然后在难以连接oracle远程库时执行此测试页,但仍显示err.number值为0,无法跳转到warning.asp,请看看我的程序是否有错!  
  注:我使用的是win2003ser,IIS中页面超时设为60秒.  
  Top

6 楼fsyxb()回复于 2005-11-22 09:27:42 得分 0

急!Top

7 楼jspadmin(阿笨狗http://www.pifoo.com域名空间专卖cn20、com50元)回复于 2005-11-22 10:08:06 得分 25

1、直接在数据库里设置响应时间,超时就强行关闭   或2、设置connection对象的属性commandtimeout   3、检测客户端是否在连接状态if     response.isclientconnected=false   then    
  -----------------------------------------------------------------------------  
  欢迎光临我的小站http://www.pifoo.com       有什么问题可以给我留言http://www.pifoo.com/guestbook/     我的QQ:33323489Top

8 楼fsyxb()回复于 2005-11-22 11:27:22 得分 0

谢谢jspadmin阿笨狗!请教:  
  1、oracle远程数据库我无权设置,只能连接使用  
  2、请问如何设置connection对象的属性commandtimeout?  
  3、我已经设检测客户端是否在连接状态,但我理解只能对下一循环起作用,对当前正在执行的循环应该不起作用,如果我把if   response.isclientconnected=false放在conn语句后,那么还没执行到if语句,在conn远程库时已经死机,即使这时客户端关闭页面,也无法执行then的设置,只有等到conn响应了,才能执行then的设置,但这时对我的程序已没多大意义。如果放在conn语句之后,那么当时的客户端肯定是连着的,也不会起作用。Top

相关问题

  • asp 连接数据库出错!求助!!
  • (ASP插入数据库出错)55555555555555555555555555555555555555
  • ASP连接远程SQL数据库
  • 访问远程数据库出错,该如何解决,help,help.....
  • 数据库出错
  • 数据库出错
  • 数据库出错
  • vb连接远程数据库出错:不能连接服务器
  • ASP连接access数据库出错问题
  • 在使用ASP更新ACCESS数据库时,总是出错

关键词

  • 连接
  • 数据库
  • 远程
  • 页面
  • 检测
  • 语句
  • 客户
  • 执行
  • oracle
  • asp

得分解答快速导航

  • 帖主:fsyxb
  • tomtown530
  • jspadmin

相关链接

  • Web开发类图书

广告也精彩

反馈

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