ASP打开EXCEL后关闭不了的问题

noto 2013-09-05 03:02:48
set excelConn=Server.CreateObject("ADODB.Connection")
excelConnStr="Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ="e:\xx.xls"
excelConn.Open excelConnStr

set excelTableRs=excelConn.OpenSchema(20)

......

excelTableRs.close
Set excelTableRs = Nothing
excelConn.close
Set excelConn = Nothing

执行完毕后,我想删除该excel文件删除不了(fso删除或者直接跑目录里删除)。大概等了1分钟后就可以删除了。不知道什么原因。提示是iis 正打开文件。
...全文
235 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
noto 2013-09-27
  • 打赏
  • 举报
回复
无法解决。确实要后台做处理。
hookee 2013-09-07
  • 打赏
  • 举报
回复
ODBC连接池释放链接有一段时间的。可以考虑写个后台服务去定时删除一定时间段内的文件。
Dogfish 2013-09-06
  • 打赏
  • 举报
回复
释放要时间。所以可以做个回收的功能。
fzfei2 2013-09-05
  • 打赏
  • 举报
回复
引用 3 楼 noto 的回复:
[quote=引用 1 楼 fzfei2 的回复:] set res=createobject("ADODB.recordset") res.Open "Select * From [Sheet1$]",excelConnStr, 1, 1 改用这种方式打开试试
因为我要查询xls里面的表,所以这样不行。[/quote] 你改用 Excel.Application 方式打开 能不能即时关 ,再通过 Sheets 属性取表信息
未知数 2013-09-05
  • 打赏
  • 举报
回复
引用 4 楼 noto 的回复:
[quote=引用 2 楼 wzs_xyz 的回复:] 可能是垃圾回收器不会立即回收资源的原因 if(CollectGarbage)CollectGarbage(); 立即释放资源试试,放到你释放变量的代码后面
/**************** excelTableRs.close Set excelTableRs = Nothing excelConn.close Set excelConn = Nothing %> <script language="jscript" runat="server"> if(CollectGarbage)CollectGarbage(); </script> 不起作用。我在火狐下[/quote] 看错了,我以为是客户端打开的excel呢;服务端的不清楚,不过道理应该差不多,你调查一下ASP的资源回收方式,看能不能找到线索
noto 2013-09-05
  • 打赏
  • 举报
回复
引用 2 楼 wzs_xyz 的回复:
可能是垃圾回收器不会立即回收资源的原因 if(CollectGarbage)CollectGarbage(); 立即释放资源试试,放到你释放变量的代码后面
/**************** excelTableRs.close Set excelTableRs = Nothing excelConn.close Set excelConn = Nothing %> <script language="jscript" runat="server"> if(CollectGarbage)CollectGarbage(); </script> 不起作用。我在火狐下
noto 2013-09-05
  • 打赏
  • 举报
回复
引用 1 楼 fzfei2 的回复:
set res=createobject("ADODB.recordset") res.Open "Select * From [Sheet1$]",excelConnStr, 1, 1 改用这种方式打开试试
因为我要查询xls里面的表,所以这样不行。
未知数 2013-09-05
  • 打赏
  • 举报
回复
可能是垃圾回收器不会立即回收资源的原因 if(CollectGarbage)CollectGarbage(); 立即释放资源试试,放到你释放变量的代码后面
fzfei2 2013-09-05
  • 打赏
  • 举报
回复
set res=createobject("ADODB.recordset") res.Open "Select * From [Sheet1$]",excelConnStr, 1, 1 改用这种方式打开试试

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧