2010-03-24 77 views
1

我想从Notes数据库中获取所有冲突文档。到目前为止,我有这样的:如何从Notes数据库返回所有冲突文档?

Domino.NotesSession notesSession; 
Domino.NotesDatabase notesDatabase = this.OpenDatabase(out notesSession); 

Domino.NotesDateTime dateTime = notesSession.CreateDateTime(String.Empty); 

Domino.NotesDocumentCollection results = 
    notesDatabase.Search(this.SearchString, dateTime, 0); 

它适用于,例如:

searchString = "@Contains(ShortName;\"Bob\")"; 

我该怎么办冲突文件相同呢?

回答

5

试试这个:

searchString = "@IsAvailable($Conflict)"; 
+0

它完全按照您的建议工作,谢谢。 – ssg31415926 2010-04-08 18:03:17

2

有文件上的字段标志的任何Notes文档作为一个名为“$冲突”的冲突。如果它出现在文件上,那么你知道这是一个冲突,(如卡洛斯所说的)。

您可以在具有公式的数据库中创建视图。

选择@IsAvailable( “$冲突”)

,然后遍历视图中的所有文件。它看起来就像你在Java中这样做,所以我认为它看起来像这样

import lotus.domino.*; 
import java.util.*; 
//..... 
//..... 
     Session s = NotesFactory.createSession(); 
     Database db = s.getDatabase("server", "filename"); 
     View vw = db.getView("viewname"); 
     Document doc = null; 
     doc = vw.getFirstDocument(); 

     while (doc != null) { 
      // do what you want in here. 
      doc = vw.getNextDocument(doc); 
      } 

你需要确保你已经添加了多米诺罐子到项目中。 This是设置用于Domino Java开发的eclipse IDE的一个很好的参考。

PS。您还可以修改数据库的设计以最大限度地减少复制冲突。但我不会在这里详细介绍你。发表评论,如果你想知道和不适当提供此线程的指示。

+0

感谢您的建议和代码 - +1。 – ssg31415926 2010-04-08 18:05:06

相关问题