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();
立即释放资源试试,放到你释放变量的代码后面
------解决方案--------------------
看错了,我以为是客户端打开的excel呢;服务端的不清楚,不过道理应该差不多,你调查一下ASP的资源回收方式,看能不能找到线索
------解决方案--------------------
set res=createobject("ADODB.recordset")
res.Open "Select * From [Sheet1$]",excelConnStr, 1, 1
改用这种方式打开试试
因为我要查询xls里面的表,所以这样不行。
你改用 Excel.Application 方式打开 能不能即时关 ,再通过 Sheets 属性取表信息
------解决方案--------------------释放要时间。所以可以做个回收的功能。
------解决方案--------------------ODBC连接池释放链接有一段时间的。可以考虑写个后台服务去定时删除一定时间段内的文件。