今天,修改了一点上次做的办公管理系统中的文件上传的BUG,原因是ASP中SQL语句性能问题导致了RecordSet对象关闭,结果使数据入库失败。对于这个错误,我目前只能这样理解了:
SQL语句 select * from TAB_FILES 打开表后,然后调用AddNew方法添加要更新的数据,表面上看没什么问题,当TAB_FILES表中记录相当多时, select * from TAB_FILES 问题就暴露了,所有被选择的数据会写入系统内存缓冲区(实际操作由RecordSet完成),从数据库中取出的数据量超过缓冲区所能容纳的临界值时导致RecordSet异常关闭,最终数据入库当然失败。
我用了一个临时解决办法:重新构造一个SQL语句,这个SQL语句不返回任何记录,就像打开一个空表一样,然后再进行数据库更新操作。