關於Domino數據庫的軟刪除

在Domino的數據庫屬性的 「高級」 附籤(選擇文件->數據庫->屬性),選中「容許軟刪除」,這樣咱們就啓用了軟刪除功能,當一個文檔沒有刪除的時候咱們可使用NotesDatabase的GetDocumentByID(NoteID)和GetDocumentByUNID(UNID)方法來獲得該文檔,若是咱們將該文檔軟刪除後,咱們在使用GetDocumentByUNID來獲取該文檔就會報以下錯誤:

---------------------------
Invalid universal id (4091 ) at line 14
---------------------------數據庫

固然你使用GetDocumentByUNID獲取硬刪除和不存在的文檔也是報一樣的錯誤。測試

這時咱們只能使用GetDocumentByUNID來獲得該文檔。咱們可使用NotesDocument的IsDeleted屬性來判斷該文檔是否已經軟刪除。spa

當軟刪除過時後,文檔就被硬刪除了,這個時候文檔的刪除存根仍然存在。代理

當文檔的存根都不在了,這個時候使用GetDocumentByID訪問就會報4270的錯誤,下面是測試的代碼:code

Sub Initialize()
    On Error GoTo TrapError

    Dim CurrentDB As NotesDatabase
    Dim Doc As NotesDocument
    Dim InvalidNoteID As Integer
    Dim Session As New NotesSession

    CurrentDB = Session.CurrentDatabase

    InvalidNoteID = 0
    'Set Doc = CurrentDB.GetDocumentByID ("15BB2" )
    Doc = CurrentDB.GetDocumentByUNID("889D30CE3CEE82F2482575520009CB1E")

    If InvalidNoteID = 0 Then
        If Doc Is Nothing Then
            Msgbox("Deletion stub")
        ElseIf Doc.IsDeleted Then
            Msgbox("Soft deletion")
            Msgbox(doc.Subject(0))
        Else
            Msgbox("Active message")
            Msgbox(doc.Subject(0))
        End If
    Else
        Msgbox("No message")
    End If
    Exit Sub

TrapError:
    Select Case Err
        Case 4270
            Msgbox("4270")
            InvalidNoteID = 1
            Resume Next
        Case Else
            Msgbox Error + " (" + Cstr (Err) + " ) at line " + Cstr (Erl)
            End
    End Select
End Sub

被刪除的文檔在它們的軟刪除過時以前均可以被恢復。直到數據庫視圖被刷新(經過點擊F9鍵,選擇視圖->刷新,或者關閉數據庫)以前,被標記軟刪除的文檔不會出如今您的廢紙簍文件中。blog

爲了查看或者恢復這些被刪除的文檔,您須要在數據庫中建立如下視圖:文檔

1.啓動Domino Designer,打開要設置軟刪除的數據庫
2. 在主菜單中,選擇」建立「 -> 「視圖」
3.在 」視圖名稱「 中輸入視圖名稱(能夠給此視圖賦予任何一個名稱)
4. 在 「視圖類型」 中選擇 「共享,包含已刪除的文檔」
以上操做在數據庫中建立一個可供用戶查看全部軟刪除的文檔。如今您能夠訪問標記爲軟刪除的文檔。
5. 爲了恢復這些文檔,建立一個操做/編輯標籤/按鈕或者代理來包含以下命令:
@UndeleteDocument
這個命令能夠把已經標記爲軟刪除狀態的文檔恢復爲正常的狀態。it

相關文章
相關標籤/搜索