返回 NotesDocumentCollection 的函数为空
Function Returning NotesDocumentCollection is Empty
我有一个 returns NotesDocumentCollection 函数。当置于调试中时,我可以看到 collection 包含 70 个文档,当进程退出该函数时,collection 为空。有谁知道为什么 collection 丢失了所有文件?
例如(代码截图)
Dim dc1 as NotesDocumentCollection
Set dc1 = returnDocColl(thisdb, key)
Function returnDocColl(db as notesdatabase, key as string) as NotesDocumentCollection
Dim vw As NotesView
Dim dc As NotesDocumentCollection
Set vw = db.getview("viewname")
If Not vw Is Nothing Then
Set dc = vw.Getalldocumentsbykey(key, True)
End If
Set returnDocColl = dc
End Function
在调试器中我可以看到 dc 包含 70 个文档,设置 returnDocColl 时它也包含 70 个文档,但设置 dc1 时它不包含任何文档。在函数结束和 dc1 的设置之间文件似乎丢失了。
我还用函数中的实际代码替换了调用函数的代码,正如预期的那样,dc1 包含 70 个文档。
文档集消失的原因是相关的 NotesView vw
对象已消失,因为它是在函数中定义的。 NotesDocumentCollection 基于 NotesView。当 NotesView 被销毁时,NotesDocumentCollection 也会被销毁。
在您的函数外部设置 NotesView vw
并将其用作参数而不是 NotesDatabase db
。
我有一个 returns NotesDocumentCollection 函数。当置于调试中时,我可以看到 collection 包含 70 个文档,当进程退出该函数时,collection 为空。有谁知道为什么 collection 丢失了所有文件?
例如(代码截图)
Dim dc1 as NotesDocumentCollection
Set dc1 = returnDocColl(thisdb, key)
Function returnDocColl(db as notesdatabase, key as string) as NotesDocumentCollection
Dim vw As NotesView
Dim dc As NotesDocumentCollection
Set vw = db.getview("viewname")
If Not vw Is Nothing Then
Set dc = vw.Getalldocumentsbykey(key, True)
End If
Set returnDocColl = dc
End Function
在调试器中我可以看到 dc 包含 70 个文档,设置 returnDocColl 时它也包含 70 个文档,但设置 dc1 时它不包含任何文档。在函数结束和 dc1 的设置之间文件似乎丢失了。
我还用函数中的实际代码替换了调用函数的代码,正如预期的那样,dc1 包含 70 个文档。
文档集消失的原因是相关的 NotesView vw
对象已消失,因为它是在函数中定义的。 NotesDocumentCollection 基于 NotesView。当 NotesView 被销毁时,NotesDocumentCollection 也会被销毁。
在您的函数外部设置 NotesView vw
并将其用作参数而不是 NotesDatabase db
。