我们有一个用Visual Basic 6.0编写的遗留应用程序。该应用程序首先将渲染的水晶报告作为pdf文档保存到目录中。然后我们将该文档作为blob存储在数据库中。以下是代码片段。当应用程序必须为1000名员工呈现报告时,它会在中途运行并在“.Export false”行上抛出“Memory full”错误。如果我在抛出异常后点击播放按钮,它可以正常工作。但是,有人必须注意它并按下播放按钮。有关如何解决此问题的任何建议吗?
FileLocation = "D:\TempSaveToMail\" & CoCode & Batch & ".pdf"
On Error Resume Next
Kill FileLocation
On Error GoTo 0
myReport.ExportOptions.DiskFileName = FileLocation
myReport.ExportOptions.DestinationType = crEDTDiskFile
myReport.ExportOptions.FormatType = crEFTPortableDocFormat
myReport.ExportOptions.PDFExportAllPages = False
myReport.ExportOptions.PDFFirstPageNumber = StartPage
myReport.ExportOptions.PDFLastPageNumber = EndPage
myReport.Export False
' Make printer friendly check the PDF image
ImageReferenceNumber = InsertImage(CoCode, FileLocation)
ReferenceNumber = GetReferenceNumber(CoCode, EmpNo, CheckNumber, Batch)
InsertPDFImages CoCode, EmpNo, Batch, ReferenceNumber, ImageReferenceNumber
答案 0 :(得分:0)
您没有处置导致内存泄漏的报表对象
每位员工使用
处理您的报告后 for each employee
myreport = new report
//do all processing here
myReport.dispose
next employee
这应该有效