zoukankan      html  css  js  c++  java
  • 关于Domino数据库的软删除

    转载自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. 在 “视图类型” 中选择 “共享,包含已删除的文档”
    以上操作在数据库中创建一个可供用户查看所有软删除的文档。现在您可以访问标记为软删除的文档。
    5. 为了恢复这些文档,创建一个操作/编辑标签/按钮或者代理来包含如下命令:
    @UndeleteDocument
    这个命令可以把已经标记为软删除状态的文档恢复为正常的状态。


    作者:小艾
    出处:http://www.cnblogs.com/luoaz/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利

  • 相关阅读:
    多线程编程:阻塞、并发队列的使用总结
    为什么阿里的程序员那么帅?---原来他们都有"编码规约扫描"神器在手
    多线程编程:多线程并发制单的开发记录【一】
    如何使用线程锁来提高多线程并发效率
    如何在分布式环境中同步solr索引库和缓存信息
    前端性能优化指南
    DOM操作方法、属性
    CSS样式手册
    XSS跨站脚本攻击
    数组和对象的使用方法
  • 原文地址:https://www.cnblogs.com/luoaz/p/2308022.html
Copyright © 2011-2022 走看看