关于Domino数据库的软删除
2010-10-12 15:48
225 查看
转载自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的错误,下面是测试的代码:
被删除的文档在它们的软删除过期之前都可以被恢复。直到数据库视图被刷新(通过点击F9键,选择视图->刷新,或者关闭数据库)之前,被标记软删除的文档不会出现在您的废纸篓文件中。
为了查看或者恢复这些被删除的文档,您需要在数据库中创建以下视图:
1.启动Domino Designer,打开要设置软删除的数据库
2. 在主菜单中,选择”创建“ -> “视图”
3.在 ”视图名称“ 中输入视图名称(可以给此视图赋予任何一个名称)
4. 在 “视图类型” 中选择 “共享,包含已删除的文档”
以上操作在数据库中创建一个可供用户查看所有软删除的文档。现在您可以访问标记为软删除的文档。
5. 为了恢复这些文档,创建一个操作/编辑标签/按钮或者代理来包含如下命令:
@UndeleteDocument
这个命令可以把已经标记为软删除状态的文档恢复为正常的状态。
在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数据库的软删除
- 关于Domino数据库的软删除
- 关于Domino数据库的软删除
- 关于Domino数据库的软删除
- 关于Domino数据库的软删除
- Android;sql数据库:关于删除数据库数据无法刷新listview并且新listview的修改增加功能出现bug的问题
- 关于Adapter对数据库的查询、删除操作
- 关于MySQL删除数据库失败的问题
- 关于"无法删除数据库 'xxx',因为该数据库当前正在使用"
- 关于删除数据库中含有自增长字段的表,清空后,自增长字段重新从1开始的问题解决方法。
- 关于数据库删除
- 关于domino服务器上的用户删除
- Domino 下批量删除邮箱用户个人配置文档及数据库文件
- 数据库中关于删除重复数据的方法的详解
- 关于数据库重复数据的删除
- 关于使用sql删除数据库重复的数据的方法整理:
- 关于如何删除数据库中重复记录
- 这个关于ssh2数据库删除操作的异常是什么原因?
- 关于sql2000附加数据库后无法删除用户
- 关于SQLServer无法对数据库'XXX'执行删除,因为它正用于复制。错误:'3724' 的解决方案