Home >Database >Mysql Tutorial >关于Domino数据库的软删除

关于Domino数据库的软删除

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 15:11:16976browse

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的错误,下面是测试的代码:

<span>Sub </span>Initialize()
    <span>On Error GoTo </span>TrapError

    <span>Dim </span>CurrentDB <span>As </span>NotesDatabase
    <span>Dim </span>Doc <span>As </span>NotesDocument
    <span>Dim </span>InvalidNoteID <span>As Integer
    Dim </span>Session <span>As New </span>NotesSession

    CurrentDB = Session.CurrentDatabase

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

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

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

被删除的文档在它们的软删除过期之前都可以被恢复。直到数据库视图被刷新(通过点击F9键,选择视图->刷新,或者关闭数据库)之前,被标记软删除的文档不会出现在您的废纸篓文件中。

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

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

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn