2010-03-24 32 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

相關問題