從「SQL IN equivalent in CAML」這個問題中,我瞭解到SharePoint 2010對於CAML具有SQL「IN」等效值。另外,2007版本不支持這一點。 OP通過嵌套一堆OR語句來解決這個問題,以達到相同的結果。我測試了這個,並且嵌套確實做了這個魔術,但是...CAML查詢中嵌套OR的限制是多少?
在我的情況下,我從列表中獲得大約1000個項目的項目。我爲我的CAML查詢動態創建了一個嵌套OR塊中所有ID的語句。我沒有擔心大數量的嵌套塊作爲this是什麼MSDN關於OR元指出:
Occurrences: Minimum: 0, Maximum: Unbounded.
和:
This element can be nested inside other Or and And elements. The server supports unlimited complicated queries.
當我打電話GetListItems - 從SharePoint 2007內置webservice的方法,我得到以下錯誤:
Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown. Some part of your SQL statement is nested too deeply. Rewrite the query or break it up into smaller queries.
我的代碼被正確寫入,因爲我測試的代碼只有5個嵌套的Or元素,結果如預期。我的問題是:什麼是嵌套的Or元素的限制?由於微軟稱這是無限的,我無法在任何地方找到它。
在此先感謝!
嘗試在[CAML Query Builder](http://www.u2u.be/res/tools/camlquerybuilder.aspx)中運行查詢。您可以選擇使用對象模型或Web服務進行查詢 - 請參閱您是否遇到同樣的問題,或者查詢存在其他問題。 – 2013-02-22 09:53:36
感謝您的提示,但同時我已經找到了解決方案。不管怎麼說,還是要謝謝你! ;) – Abbas 2013-02-22 10:23:56