关于Domino数据库的软删除

简介:

在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/carysun/archive/2009/02/03/1383399.html如需转载请自行联系原作者

相关文章
|
8月前
|
存储 缓存 数据库
数据库数据删除策略:硬删除vs软删除的最佳实践指南
在项目开发中,“删除”操作常见但方式多样,主要分为硬删除与软删除。硬删除直接从数据库移除数据,操作简单、高效,但不可恢复;适用于临时或敏感数据。软删除通过标记字段保留数据,支持恢复和审计,但增加查询复杂度与数据量;适合需追踪历史或可恢复的场景。两者各有优劣,实际开发中常结合使用以满足不同需求。
749 4
|
3月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
162 3
|
3月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
798 152
|
4月前
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。
|
3月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
3月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。

热门文章

最新文章