关于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
这个命令可以把已经标记为软删除状态的文档恢复为正常的状态。
关于Domino数据库的软删除的更多相关文章
- DDD Code First 迁移数据实现EF CORE的软删除,值对象迁移配置
		
感谢Jeffcky大佬的博客: EntityFramework Core 2.0全局过滤 (HasQueryFilter) https://www.cnblogs.com/CreateMyself/p ...
 - laravel7  H-ui模板ajax软删除
		
1:HTML 书写 {{-- 不能自己删除自己的按钮出现 $item循环的值,$auth检测函数 --}} @if(auth()->id()!=$item->id) <a title ...
 - laravel框架总结(九) -- 软删除
		
当模型被软删除时,它们并不会真的从数据库中被移除.而是会在模型上设置一个 deleted_at 属性并将其添加到数据库.如果对应模型被软删除,则deleted_at字段的值为删除时间,否则该值为空. ...
 - Mysql软删除
		
所谓软删除(Soft Deleting),即在删除数据表中的数据时,并不直接将其从数据表中删除,而是将其标志为删除,即在每张表中设置一个删除字段(如:IsDeleted)等,默认情况下其值为0,及未删 ...
 - 数据的软删除-管理员的CRUD
		
数据的“软删除”---把数据真正删除在某些时候会有问题.IsDeleted字段,false表示不删除,而是让用户可以看到,true表示是软删除,用户看不到. 一个表引用另外一张表的时候一定要引用主键. ...
 - laravel and lumen  软删除操作
		
知识都是有联系的,这绝对是真理.作为一名小白,看了一点官方文档,把我自己理解的软删除操作给大家讲讲.有些就是套用官方文档的话. 定义:什么是软删除呢,所谓软删除指的是数据表记录并未真的从数据库删除,而 ...
 - LindDotNetCore~ISoftDelete软删除接口
		
回到目录 概念 ISoftDelete即软删除,数据在进行delete后不会从数据库清除,而只是标记一个状态,在业务范围里都不能获取到这个数据,这在ORM框架里还是比较容易实现的,对传统的ado来说需 ...
 - Laravel设置软删除及其恢复系列操作
		
软删除及其相关实现 在模型类中要使用SoftDeletestrait并设置$date属性数组 <?php namespace App\Models; use Illuminate\Databas ...
 - Yii2 软删除
		
什么是软删除 后台操作,删除一条记录,不希望真正的从数据库中删除,用个字段标记一下.比如delete_at.默认0.当执行删除操作,更新delete_at为当前时间戳 这样列表显示的时候只查询dele ...
 
随机推荐
- 一个使用方便的对FMDB进行封装的框架和一个可以切应用图标的应用
			
框架的git地址 :https://github.com/Joker-King/JKDBModel 切割图标的应用地址 http://pan.baidu.com/s/1kVjflwr
 - CAST和CONVERT差别与联系
			
CAST和CONVERT:都是将一种数据类型转换成为另一种数据类型. CAST: CAST ( expression AS data_type [ ( length ) ] ) EG: )) ) as ...
 - JSON和js对象之间的相互转化
			
jQuery插件支持的转换方式 $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 http://www. ...
 - T4模板之初体验(语法)
			
一.什么是T4模板 T4是Text Template Transformation Toolkit(文本模板转换工具包)的四个英文首字母的简称.是微软提供的一种代码生成引擎. 在ADO.NET实体数据 ...
 - 添加App启动页面
			
记录下自己在设置app启动页面时遇到的问题. 先写下自己完整的步骤吧. iPhone Portrait iOS 8-Retina HD 5.5 (1242×2208) @3xiPhone Portra ...
 - 视图组件(View)
			
1.Android应用的大部分UI组件都放在了android.widget包及其子包,android.view包及其子包中,Android应用的所有UI组件都继承了View类2.View类还有一个重要 ...
 - 使用java 程序创建格式为utf-8文件的方法(写入和读取json文件)
			
使用java 程序创建格式为utf-8文件的方法: try{ File file=new File("C:/11.jsp"); ...
 - 配置iDempiere源码开发环境
			
你需要一个较为快速通畅的互联网连接来下载源代码! 安装软件: OS: Windows Server 2008 R2 SP1 x64 英文版 Database: Oracle 11G R2 x64 英文 ...
 - Dynamic CRM 2013学习笔记(二)插件基本用法及调试
			
插件是可与 Microsoft Dynamics CRM 2013 和 Microsoft Dynamics CRM Online 集成的自定义业务逻辑(代码),用于修改或增加平台的标准行为.也可 ...
 - 通信服务器群集——跨服务器通信Demo(源码)
			
对于一些基于TCP Socket的大型C/S应用来说,能进行跨服务器通信可能是一个绕不开的功能性需求.出现这种需求的场景类似于下面描述的这种情况. 假设,我们一台TCP应用服务器能同时承载10000人 ...