2
我有一個返回NotesDocumentCollection的函數。當放置在調試中時,我可以看到該集合包含70個文檔,當該過程退出該功能時,該集合然後是空的。有誰知道爲什麼集合會丟失所有文檔?函數返回NotesDocumentCollection爲空
例如(代碼的快照)
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
當在調試器中我可以看到,直流含有70個文件,當returnDocColl設置它也包含了70個文件,但DC1設置它不包含任何文檔。文件似乎在功能結束和dc1設置之間丟失。
我也用函數中的實際代碼替換了調用函數的代碼,並且如預期的那樣dc1包含了70個文檔。
謝謝克努特,這確實使得很多感覺。 但上面的代碼只是實際功能的一小部分。該函數通過5個不同的數據庫循環嘗試定位文檔。由於它看起來有兩種不同的數據庫類型(實時和歸檔),因此它必須檢查兩個不同的視圖,具體取決於該數據庫中的哪一個。不是最好的,但它是一個我不得不適應的舊系統!如果我在聲明部分聲明瞭db和vw,那也能解決這個問題嗎? 我可以編輯的問題,包括實際的功能,如果有幫助? 再次感謝費 –
是的,如果您在首次調用函數之前聲明並設置函數外部的dbs和視圖,應該解決該問題。 –
謝謝克努特,工作! –