以下简单代码将一些单元格复制到剪贴板中,并将其作为文本数据取回。稍后,这些数据将被发布到内部Web服务,但是此时已被注释掉。 每次我运行脚本时,Excel的已用内存都会增加大约80MB(字符串大小的两倍)。我不知道垃圾收集器在哪里/为什么失败,以及我该怎么办。
If (select banned_till from users where userid = $1) = nil or < currentTime
Insert in posts (col1, col2) values ('abc', 'xyz')
ELSE
RAISE Exception "User is banned"
ENDIF
答案 0 :(得分:0)
根本原因不是大字符串的处理。问题是调用MSForms.DataObj.GetText
方法无法正确释放内存。
剪贴板访问也可以通过本机Windows API完成。这个网站http://access.mvps.org/access/api/api0049.htm展示了一个示例实现,该示例实现在我的测试中运行良好,即使它比MSForms提供的方法慢30%。