首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

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

2013-09-29 
ASP打开EXCEL后关闭不了的问题set excelConnServer.CreateObject(ADODB.Connection)excelConnStrDriv

ASP打开EXCEL后关闭不了的问题
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 正打开文件。

[解决办法]

set res=createobject("ADODB.recordset")
res.Open "Select * From [Sheet1$]",excelConnStr, 1, 1

改用这种方式打开试试
[解决办法]
可能是垃圾回收器不会立即回收资源的原因
 if(CollectGarbage)CollectGarbage(); 
立即释放资源试试,放到你释放变量的代码后面
[解决办法]

引用:
Quote: 引用:

可能是垃圾回收器不会立即回收资源的原因
 if(CollectGarbage)CollectGarbage(); 
立即释放资源试试,放到你释放变量的代码后面

/****************
excelTableRs.close
Set excelTableRs = Nothing
excelConn.close
Set excelConn = Nothing
%>
<script language="jscript" runat="server">
if(CollectGarbage)CollectGarbage(); 
</script>
不起作用。我在火狐下

看错了,我以为是客户端打开的excel呢;服务端的不清楚,不过道理应该差不多,你调查一下ASP的资源回收方式,看能不能找到线索
[解决办法]
引用:
Quote: 引用:


set res=createobject("ADODB.recordset")
res.Open "Select * From [Sheet1$]",excelConnStr, 1, 1

改用这种方式打开试试


因为我要查询xls里面的表,所以这样不行。

你改用  Excel.Application  方式打开 能不能即时关 ,再通过 Sheets 属性取表信息
 
[解决办法]
释放要时间。所以可以做个回收的功能。
[解决办法]
ODBC连接池释放链接有一段时间的。可以考虑写个后台服务去定时删除一定时间段内的文件。

热点排行