Həll: SPQuery Qovluq Axtar Vermiyor

This past week I was implementing an "evolving" solution for a client that uses BDC and SPQuery and ran into some difficulty using SPQuery against a document library containing folders. Aşağı xətt: assign "recursive" sorğu baxımından özelliğe.

Mənim ssenari:

  • Bazar ertəsi, Mən bir sənəd yüklə və bir meta data təchiz.
  • Aşağıdakı həftə, I upload a new document. Much of this new document’s meta data is based on the document I uploaded on Monday (which we call the "master document").
  • Istifadəçilər asanlıqla bir mövzu axtarış vasitəsilə ki, bazar ertəsi sənəd tapa bilərsiniz, belə ki, biz siyahısına BDC dostu interfeysi təmin edən bir web service fasad yaratdığınız.
  • A BDC data column provides a friendly user interface. (Bu daha çox dostluq Axtarış sütun üçün BDC istifadə edərək, mənim cəhd hissəsidir).

Son BDC fasad xidməti axtarış etmək bu kimi bir sorğu istifadə edir:

 // Bu CAML sorğu yaradan yardım üçün istifadə olunur U2U alət.
      oQuery.Query =
        "<Harada>";

      əgər (titleFilter.Length > 0)
        oQuery.Query   =
          "  <Və>";

      oQuery.Query   =
        "    <Və>" +
        "      <Geq>" +
        "        <FieldRef Name=\"DocumentId\" />" +
        "        <Value Type=\"Text\">" + MinID + "</Dəyər>" +
        "      </Geq>" +
        "      <Leq>" +
        "        <FieldRef Name=\"DocumentId\" />" +
        "        <Value Type=\"Text\">" + maxId + "</Dəyər>" +
        "      </Leq>" +
        "    </Və>";

      əgər (titleFilter.Length > 0)
        oQuery.Query   =
          "    <Ehtiva>" +
          "      <FieldRef Name=\"Title\" />" +
          "      <Value Type=\"Text\">" + titleFilter + "</Dəyər>" +
          "    </Ehtiva>" +
          "  </Və>";
      oQuery.Query   =
        "</Harada>";

Inkişaf ilkin mərhələsində, this worked great. Lakin, biz birdən-birə bəzi problemləri həll etmək üçün dizine qovluq tətbiq, my BDC picker wouldn’t return any results. I tracked this down to the fact that the SPQuery would never return any results. We used folders primarily to allow multiple files with the same name to be uploaded but with different meta data. When the file is uploaded, biz siyahısına maddə şəxsiyyət əsasında bir qovluq yarada və sonra orada faylın köçürülməsi (Mən bu barədə yazırdı burada; biz etdik qarışıq nəticələri bu yanaşma ilə deyil, bütövlükdə, yaxşı çalışır). The user don’t care about folders and in fact, don’t really understand that there are any folders. We have configured all the views on the library to show items without regard to folders.

I hit this problem twice as the technical implementation evolved and solved it differently each time. The first time, I wasn’t using the CONTAINS operator in the query. Without a CONTAINS operator, I was able to solve the problem by specifying the view on the SPQuery’s contructor. Instead of using the default constructor:

SPList oList = web.Lists["Documents"];

SPQuery oQuery = yeni SPQuery();

Mən əvəzinə görünüşü müəyyən bir konstruktor istifadə:

SPList oList = web.Lists["Documents"];

SPQuery oQuery = yeni SPQuery(oList.Views["All Documents"]);

Bu problemi həll edirəm və nəticələr almaq başladı.

I then added the CONTAINS operator into the mix and it broke again. It turns out that the CONTAINS operator, indiyə qədər mən deyə bilərəm ki, bir sadə GEQ kimi məqsədi ilə eyni şəkildə işləmir / LEQ operators. I did some searching and learned that the query’s ViewAttributes should be set to "Recursive", kimi:

oQuery.ViewAttributes = "Scope=\"Recursive\"";

That solved the problem for CONTAINS. Faktiki olaraq, Bu da mənim orijinal axtarış problemi həll və mən recursive atributu ilk dəfə müəyyən etsəydi, Mən məsələ daxil olmazdı.

Bir görünüşü-based SPQuery bəzi operatorlar üçün çalışır ki, (GEQ/LEQ) və başqaları (Ehtiva), ƏĐG qovluq tərkibli sənəd kitabxanalar ilə bütün iş üçün görünmüyor ki, ilə coupled mənə SPQuery bəzi orthogonality məsələlər var iman gətirib.

Xüsusi Thanks:

  • Da yaxşı insanlar U2U və onların sorğu alət.
  • Michael Hoffer böyük "etməklə öyrənmə" blog, Şərh və cavablar.

</son>

Blog abunə!

3 Haqqında "fikirləriHəll: SPQuery Qovluq Axtar Vermiyor

  1. No name

    http://www.batteryfast.co.uk/asus/w3v.htm Asus w3v batareya,
    http://www.batteryfast.co.uk/asus/w3000a.htm asus w3000a battery,
    http://www.batteryfast.co.uk/asus/w3000.htm Asus w3000 batareya,
    http://www.batteryfast.co.uk/asus/w3000v.htm Asus w3000v batareya,
    http://www.batteryfast.co.uk/asus/a31-s5.htm Asus A31-S5 batareya,
    http://www.batteryfast.co.uk/asus/a32-s5.htm Asus A32-S5 batareya,
    http://www.batteryfast.co.uk/asus/s52n.htm Asus s52n batareya,
    http://www.batteryfast.co.uk/asus/s5000.htm Asus S5000 batareya,
    http://www.batteryfast.co.uk/asus/s5200n.htm Asus s5200n batareya,
    http://www.batteryfast.co.uk/asus/s5n.htm Asus s5n batareya,
    http://www.batteryfast.co.uk/asus/90-naa1b1000.htm Asus 90-naa1b1000 batareya,
    http://www.batteryfast.co.uk/asus/s2691061.htm Asus s2691061 batareya,
    http://www.batteryfast.co.uk/asus/a42-v6.htm Asus a42-V6 batareya,
    http://www.batteryfast.co.uk/asus/a32-u5.htm Asus A32-u5 batareya,
    http://www.batteryfast.co.uk/asus/u5f.htm Asus u5f batareya,
    http://www.batteryfast.co.uk/asus/u5a.htm Asus batareya U5A,
    http://www.batteryfast.co.uk/asus/u5f.htm Asus u5f batareya,
    http://www.batteryfast.co.uk/asus/u5.htm Asus U5 batareya,
    http://www.batteryfast.co.uk/compaq/nw8000.htm Compaq nw8000 batareya,
    http://www.batteryfast.co.uk/compaq/nc8000.htm Compaq nc8000 batareya,
    http://www.batteryfast.co.uk/compaq/v1000.htm Compaq v1000 batareya,
    http://www.batteryfast.co.uk/compaq/nc6000.htm Compaq nc6000 batareya,
    http://www.batteryfast.co.uk/compaq/nx5000.htm Compaq nx5000 batareya,
    http://www.batteryfast.co.uk/compaq/n600.htm Compaq n600 batareya,
    http://www.batteryfast.co.uk/compaq/n600c.htm Compaq n600c batareya,
    http://www.batteryfast.co.uk/compaq/n610c.htm Compaq n610c batareya,
    http://www.batteryfast.co.uk/compaq/n610v.htm Compaq n610v batareya,
    http://www.batteryfast.co.uk/compaq/n620c.htm Compaq n620c batareya,
    http://www.batteryfast.co.uk/compaq/e500.htm Compaq e500 batareya,
    http://www.batteryfast.co.uk/compaq/e500s.htm Compaq e500s batareya,
    http://www.batteryfast.co.uk/compaq/v300.htm Compaq V300 batareya,
    http://www.batteryfast.co.uk/compaq/v500.htm Compaq v500 batareya,
    http://www.batteryfast.co.uk/compaq/pp2060.htm Compaq pp2060 batareya,
    http://www.batteryfast.co.uk/compaq/nx9000.htm Compaq nx9000 batareya,
    http://www.batteryfast.co.uk/compaq/nx9005.htm Compaq nx9005 batareya,
    http://www.batteryfast.co.uk/compaq/nx9010.htm Compaq nx9010 batareya,
    http://www.batteryfast.co.uk/compaq/nx9020.htm Compaq nx9020 batareya,
    http://www.batteryfast.co.uk/compaq/n110.htm Compaq n110 batareya,
    http://www.batteryfast.co.uk/compaq/n110s.htm Compaq n110s batareya,
    http://www.batteryfast.co.uk/compaq/pp2101x.htm Compaq pp2101x batareya,
    http://www.batteryfast.co.uk/compaq/presario-2100.htm Compaq Presario 2100 batareya,
    http://www.batteryfast.co.uk/compaq/ze4000.htm Compaq ze4000 batareya,
    http://www.batteryfast.co.uk/compaq/f4809a.htm Compaq f4809a batareya,
    http://www.batteryfast.co.uk/compaq/f4812a.htm Compaq f4812a batareya,
    http://www.batteryfast.co.uk/dell/inspiron-700m.htm Dell Inspiron 700m batareya,
    http://www.batteryfast.co.uk/dell/inspiron-710m.htm Dell Inspiron 710m batareya,
    http://www.batteryfast.co.uk/dell/latitude-x200.htm Dell Enlem x200 batareya,
    http://www.batteryfast.co.uk/dell/8u443.htm Dell batareya 8u443,
    http://www.batteryfast.co.uk/dell/312-0058.htm vadi 312-0058 batareya,

    Cavab

Şəkil Yükləmə

E-poçt ünvanından dərc olunmayacaq. Lazım alanlar qeyd olunur *