笔记文档的收集和查看是否有限制?
Is there a restriction on notes document collection and view?
我尝试使用 NotesView.AllEntries.Count 获取文档总数(总计 = 8,462)
但在我的 for 循环索引中总计
当我打印索引时 ==> 它显示了 10975
程序怎么了?以及如何解决这个问题?
非常感谢
编辑:这是我的代码。
(将当前数据库中的文档移动到数据库历史记录中)
是否与文档冲突有关?
NotesView.GetNthDocument 文档说 "This method accesses only top-level (main) documents in a view; response documents are excluded."
另外,@umeli 是绝对正确的。可以这样想:大多数会读写的人都知道他们字母表的第一个字母和第 26 个数字,他们可以立即告诉你 "H" 后面是什么字母,但他们不知道第 20 个他们头顶上的字母。问他们第 20 个字母,他们必须以您知道的数字开头(例如 "A"),然后数到第 20 步。因此,在人脑中,字母表不是以数组的形式存储的,而是以链表的形式存储的。 NotesView 和 NotesDocumentCollection 是相同的。在大多数情况下,无论视图大小如何,GetNextDocument 都会很快,但 GetNthDocument 一开始会很快,然后越来越慢...... GetNthDocument(1000) 从第一个文档开始并计数到一千......然后当你再次循环时它从第一个数到第 1,001 个...
改为使用以下模式:
Set doc = view.GetFirstDocument
Do Until doc Is Nothing
'Do your thing here
Set doc = view.GetNextDocument(doc)
Loop
...或者在你的情况下,如果你想做一些从视图中删除文档的事情...
Set doc = view.GetFirstDocument
Do Until doc Is Nothing
Set docNext = view.GetNextDocument(doc) 'Get it early!
'Do your thing here
Set doc = docNext
Loop
这还有处理响应文档的优势。
不是你问的,但我还建议你写一个函数,它在主文档上工作,然后在它的每个子文档上递归调用它自己,然后让你的视图 only 选择主要文档。这样,您可以更加放心地一次移动响应层次结构。
您可能想要做的另一件事是将 NotesView.AutoUpdate 设置为 False。这将有助于 运行 更快。
我尝试使用 NotesView.AllEntries.Count 获取文档总数(总计 = 8,462)
但在我的 for 循环索引中总计
当我打印索引时 ==> 它显示了 10975
程序怎么了?以及如何解决这个问题?
非常感谢
编辑:这是我的代码。
(将当前数据库中的文档移动到数据库历史记录中)
是否与文档冲突有关?
NotesView.GetNthDocument 文档说 "This method accesses only top-level (main) documents in a view; response documents are excluded."
另外,@umeli 是绝对正确的。可以这样想:大多数会读写的人都知道他们字母表的第一个字母和第 26 个数字,他们可以立即告诉你 "H" 后面是什么字母,但他们不知道第 20 个他们头顶上的字母。问他们第 20 个字母,他们必须以您知道的数字开头(例如 "A"),然后数到第 20 步。因此,在人脑中,字母表不是以数组的形式存储的,而是以链表的形式存储的。 NotesView 和 NotesDocumentCollection 是相同的。在大多数情况下,无论视图大小如何,GetNextDocument 都会很快,但 GetNthDocument 一开始会很快,然后越来越慢...... GetNthDocument(1000) 从第一个文档开始并计数到一千......然后当你再次循环时它从第一个数到第 1,001 个...
改为使用以下模式:
Set doc = view.GetFirstDocument
Do Until doc Is Nothing
'Do your thing here
Set doc = view.GetNextDocument(doc)
Loop
...或者在你的情况下,如果你想做一些从视图中删除文档的事情...
Set doc = view.GetFirstDocument
Do Until doc Is Nothing
Set docNext = view.GetNextDocument(doc) 'Get it early!
'Do your thing here
Set doc = docNext
Loop
这还有处理响应文档的优势。
不是你问的,但我还建议你写一个函数,它在主文档上工作,然后在它的每个子文档上递归调用它自己,然后让你的视图 only 选择主要文档。这样,您可以更加放心地一次移动响应层次结构。
您可能想要做的另一件事是将 NotesView.AutoUpdate 设置为 False。这将有助于 运行 更快。