如何删除32k错误文档?

时间:2012-10-04 09:55:17

标签: lotus-notes lotusscript lotus-formula

我有一些文件。如果我尝试打开文档然后显示错误,例如“字段太大32k或视图列和选择公式太大”

每当我尝试删除文档时,我都会遇到同样的错误。我无法删除。

好的,我们可以尝试通过后端获取文档,但在那里,我无法获取文档句柄。

无论我尝试搜索什么,文档集合数量都是0。

  

重要: - 我使用的是Notes 6.5.2。

先谢谢,

5 个答案:

答案 0 :(得分:2)

您可以创建数据库的新副本,不会复制损坏的文档。您也可以尝试使用Ytria的扫描工具。

答案 1 :(得分:1)

“好的,我们可以尝试通过后端获取文档,但在那里,我无法获取文档句柄。”

您可以发布您正在使用的代码吗? 我不明白为什么以下代码不起作用:

Dim session As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim doc As NotesDocument
Dim deleteDoc List as NotesDocument

Set db = session.Currentdatabase
'*** Get collection of selected documents
Set col = db.UnprocessedDocuments
'*** Loop through selected documents
Set doc = col.GetFirstDocument
Do Until doc Is Nothing
    '*** Add document to list to delete later
    Set deleteDoc(doc.UniversalID) = doc
    Set doc = col.GetNextDocument(doc)
Loop

'*** Delete all documents in list from database
ForAll d in deleteDoc
    Call d.Remove(True)
End ForAll

答案 2 :(得分:1)

也许您可能希望将导致您头痛的字段更改为富文本,因为富文本字段的限制略大于普通文本字段。富文本字段的限制仅受可用磁盘空间限制,最高可达1GB

答案 3 :(得分:0)

您是否尝试过简单地删除损坏文档上的问题字段,然后删除该文档?您可以尝试执行以下操作:

1-创建一个代理集,使用以下公式在选定文档上运行:

FIELD corruptfield := @DeleteField;

2 - 在视图中选择问题文档并运行代理

3 - 如果没有错误输出,则尝试从视图中手动删除文档。

答案 4 :(得分:0)

这对我有用:

1 /使用DocViewer获取文档的注释ID

可能有很多其他方法可以获得NoteID,但是当我尝试通过 DocViewer 发送文档时,它就出现了,这是众所周知的免费工具
https://www.openntf.org/main.nsf/project.xsp?r=project/Document%20Viewer/summary

2 /使用Notes C API删除文档

我按照 pstr 的建议,很快找到了这个脚本 http://www.nsftools.com/tips/ApiStublessDelete.lss
只需将它瞄准好的数据库,使用Note ID,它就可以实现!!

我尝试更改脚本以便不删除删除存根(我希望删除将在我的群集和本地副本上复制)。但是你会回到32k错误!因此,您必须在每个副本上应用删除(或者当然重新创建副本)。