好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

关于Domino数据库的软删除

http://carysun.javaeye.com/blog/463228 在Domino的数据库属性的 高级 附签(选择文件-数据库-属性),选中允许软删除,这样我们就启用了软删除功能,当一个文档没有删除的时候我们可以使用NotesDatabase的GetDocumentByID(NoteID)和GetDocumentByUNID(U

http://carysun.javaeye.com/blog/463228

在Domino的数据库属性的 [高级] 附签(选择文件->数据库->属性),选中[允许软删除],这样我们就启用了软删除功能,当一个文档没有删除的时候我们可以使用NotesDatabase的GetDocumentByID(NoteID)和GetDocumentByUNID(UNID)方法来得到该文档,如果我们将该文档软删除后,我们在使用GetDocumentByUNID来获取该文档就会报如下错误:

---------------------------
Invalid universal id (4091 ) at line 14
---------------------------

当然你使用GetDocumentByUNID获取硬删除和不存在的文档也是报同样的错误。

这时我们只能使用GetDocumentByUNID来得到该文档。我们可以使用NotesDocument的IsDeleted属性来判断该文档是否已经软删除。

当软删除过期后,文档就被硬删除了,这个时候文档的删除存根仍然存在。

当文档的存根都不在了,这个时候使用GetDocumentByID访问就会报4270的错误,下面是测试的代码:

 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键,选择视图->刷新,或者关闭数据库)之前,被标记软删除的文档不会出现在您的废纸篓文件中。

为了查看或者恢复这些被删除的文档,您需要在数据库中创建以下视图:

1.启动Domino Designer,打开要设置软删除的数据库
2. 在主菜单中,选择]创建[ -> [视图]
3.在 ]视图名称[ 中输入视图名称(可以给此视图赋予任何一个名称)
4. 在 [视图类型] 中选择 [共享,包含已删除的文档]
以上操作在数据库中创建一个可供用户查看所有软删除的文档。现在您可以访问标记为软删除的文档。

@UndeleteDocument
这个命令可以把已经标记为软删除状态的文档恢复为正常的状态。

查看更多关于关于Domino数据库的软删除的详细内容...

  阅读:50次