解決方案: SPQuery 不能搜尋資料夾

過去這周我正在實施"演變" 使用 BDC 和 SPQuery 並遇到一些困難,使用 SPQuery 針對包含資料夾的文件庫的用戶端解決方案. 底線: 分配"遞迴" 在視圖屬性中的查詢.

我的方案:

  • 週一, 上傳文檔,並提供一些中繼資料.
  • 下一周, 我上傳一個新的文檔. 很多此新文檔的中繼資料基於我週一傳的文檔 (我們稱之為"主控文件").
  • 我們已經創建了 web 服務的屏風,這提供一個 BDC 友好介面到清單中,以便使用者可以方便地找到那個星期一文檔通過標題搜索.
  • BDC 資料列提供了一個友好的使用者介面. (這是嘗試的我在為一個更友好的查閱列使用 BDC 的一部分).

最後的 BDC 外立面服務使用像這樣的查詢進行查找:

 // U2U 工具用於説明生成此 CAML 查詢.
      oQuery.Query =
        "<在哪裡>";

      如果 (titleFilter.Length > 0)
        oQuery.Query   =
          "  <和>";

      oQuery.Query   =
        "    <和>" +
        "      <Geq>" +
        "        <FieldRef 名稱 = "DocumentId" />" +
        "        <數值型別 = "Text">" + minId + "</價值>" +
        "      </Geq>" +
        "      <Leq>" +
        "        <FieldRef 名稱 = "DocumentId" />" +
        "        <數值型別 = "Text">" + maxId + "</價值>" +
        "      </Leq>" +
        "    </和>";

      如果 (titleFilter.Length > 0)
        oQuery.Query   =
          "    <包含>" +
          "      <FieldRef 名稱 = "Title" />" +
          "      <數值型別 = "Text">" + titleFilter + "</價值>" +
          "    </包含>" +
          "  </和>";
      oQuery.Query   =
        "</在哪裡>";

在發展的初始階段, 這工作得非常棒. 不過, 我們引入的目錄來解決一些問題的資料夾和突然, 我 BDC 選取器不會返回任何結果. 我跟蹤這 SPQuery 將永遠不會返回任何結果的事實. 我們資料夾主要用於允許多個檔具有相同的名稱,要上載,但使用不同的中繼資料. 當上載檔, 我們創建一個基於 ID 的清單項的資料夾,然後將該檔移那裡 (我曾寫過, 在這裡; 我們已經 好壞參半的結果 這種方法,但總體上, 它工作好). 使用者不關心資料夾,事實上, 真不明白有任何資料夾. 我們已經配置上要顯示的專案而不考慮資料夾的庫的所有視圖.

我打了兩倍的技術實施發展和解決它以不同的方式每次這個問題. 第一次, 我不在查詢中使用包含運算子. 沒有包含運算子, 我是能夠解決的問題通過指定視圖上 SPQuery 的建構函式. 而不是使用預設的建構函式:

SPList oList = web。清單["檔"];

SPQuery oQuery = 新增功能 SPQuery();

我轉而用於指定視圖的建構函式:

SPList oList = web。清單["檔"];

SPQuery oQuery = 新增功能 SPQuery(oList.Views["所有文檔"]);

這解決了這個問題,我開始變得我的結果.

然後加入混合的 CONTAINS 操作符,它再一次打破了. 原來,包含運算子, 到目前為止,我可以告訴, 不能與視圖相同的方式更簡單的 GEQ / LEQ 運算子. 我做了一些搜索,學到了,該查詢 ViewAttributes 應該設置為"遞迴", 如在:

oQuery.ViewAttributes = "範圍 = "Recursive"";

包含用於解決了這個問題. 事實上, 這也解決了我原來的搜索問題,如果我有指定遞迴屬性第一次, 我將不會遇到這一問題再一次.

基於視圖的 SPQuery 工程部分經營者這一事實 (GEQ/LEQ) 而不是別人 (包含), 加上這一事實似乎 Kpi 不能工作在所有與此資料夾包含的文件庫主角我相信 SPQuery 具有正交性的幾個問題.

特別感謝:

  • 在的好人們 U2U 和他們的查詢工具.
  • 邁克爾 · 哈弗的偉大 "邊學邊做" 博客張貼內容, 意見及回應.

</結束>

訂閱我的博客!

3 上“的想法解決方案: SPQuery 不能搜尋資料夾

  1. 沒有名稱

    http://www.batteryfast.co.uk/asus/w3v.htm 華碩 w3v 電池,
    http://www.batteryfast.co.uk/asus/w3000a.htm 華碩 w3000a 電池,
    http://www.batteryfast.co.uk/asus/w3000.htm 華碩 w3000 電池,
    http://www.batteryfast.co.uk/asus/w3000v.htm 華碩 w3000v 電池,
    http://www.batteryfast.co.uk/asus/a31-s5.htm 華碩 a31 s5 電池,
    http://www.batteryfast.co.uk/asus/a32-s5.htm 華碩 a32-s5 電池,
    http://www.batteryfast.co.uk/asus/s52n.htm 華碩 s52n 電池,
    http://www.batteryfast.co.uk/asus/s5000.htm 華碩 s5000 電池,
    http://www.batteryfast.co.uk/asus/s5200n.htm 華碩 s5200n 電池,
    http://www.batteryfast.co.uk/asus/s5n.htm 華碩 s5n 電池,
    http://www.batteryfast.co.uk/asus/90-naa1b1000.htm 華碩 90 naa1b1000 電池,
    http://www.batteryfast.co.uk/asus/s2691061.htm 華碩 s2691061 電池,
    http://www.batteryfast.co.uk/asus/a42-v6.htm 華碩 a42 v6 電池,
    http://www.batteryfast.co.uk/asus/a32-u5.htm 華碩 a32-u5 電池,
    http://www.batteryfast.co.uk/asus/u5f.htm 華碩 u5f 電池,
    http://www.batteryfast.co.uk/asus/u5a.htm 華碩 u5a 電池,
    http://www.batteryfast.co.uk/asus/u5f.htm 華碩 u5f 電池,
    http://www.batteryfast.co.uk/asus/u5.htm 華碩 u5 電池,
    http://www.batteryfast.co.uk/compaq/nw8000.htm 康柏 nw8000 電池,
    http://www.batteryfast.co.uk/compaq/nc8000.htm 康柏 nc8000 電池,
    http://www.batteryfast.co.uk/compaq/v1000.htm compaq v1000 電池,
    http://www.batteryfast.co.uk/compaq/nc6000.htm 康柏 nc6000 電池,
    http://www.batteryfast.co.uk/compaq/nx5000.htm 康柏 nx5000 電池,
    http://www.batteryfast.co.uk/compaq/n600.htm 康柏 n600 電池,
    http://www.batteryfast.co.uk/compaq/n600c.htm 康柏 n600c 電池,
    http://www.batteryfast.co.uk/compaq/n610c.htm 康柏 n610c 電池,
    http://www.batteryfast.co.uk/compaq/n610v.htm compaq n610v 電池,
    http://www.batteryfast.co.uk/compaq/n620c.htm 康柏 n620c 電池,
    http://www.batteryfast.co.uk/compaq/e500.htm 康柏 e500 電池,
    http://www.batteryfast.co.uk/compaq/e500s.htm compaq e500s 電池,
    http://www.batteryfast.co.uk/compaq/v300.htm 康柏 v300 電池,
    http://www.batteryfast.co.uk/compaq/v500.htm compaq v500 電池,
    http://www.batteryfast.co.uk/compaq/pp2060.htm 康柏 pp2060 電池,
    http://www.batteryfast.co.uk/compaq/nx9000.htm 康柏 nx9000 電池,
    http://www.batteryfast.co.uk/compaq/nx9005.htm compaq nx9005 電池,
    http://www.batteryfast.co.uk/compaq/nx9010.htm compaq nx9010 電池,
    http://www.batteryfast.co.uk/compaq/nx9020.htm compaq nx9020 電池,
    http://www.batteryfast.co.uk/compaq/n110.htm 康柏 n110 電池,
    http://www.batteryfast.co.uk/compaq/n110s.htm compaq n110s 電池,
    http://www.batteryfast.co.uk/compaq/pp2101x.htm compaq pp2101x 電池,
    http://www.batteryfast.co.uk/compaq/presario-2100.htm 康柏 2100 電池,
    http://www.batteryfast.co.uk/compaq/ze4000.htm compaq ze4000 電池,
    http://www.batteryfast.co.uk/compaq/f4809a.htm compaq f4809a 電池,
    http://www.batteryfast.co.uk/compaq/f4812a.htm compaq f4812a 電池,
    http://www.batteryfast.co.uk/dell/inspiron-700m.htm 戴爾 inspiron 700m 電池,
    http://www.batteryfast.co.uk/dell/inspiron-710m.htm 戴爾 inspiron 710 m 電池,
    http://www.batteryfast.co.uk/dell/latitude-x200.htm 戴爾 latitude x 200 電池,
    http://www.batteryfast.co.uk/dell/8u443.htm 戴爾 8u443 電池,
    http://www.batteryfast.co.uk/dell/312-0058.htm 戴爾 312-0058 電池,

    答覆

留言

您的電子郵件地址不會被公開. 必需的地方已做標記 *