Šķīdums: SPQuery nav meklēšanas mapes

Šo pagājušo nedēļu biju īstenošanas "attīstās" risinājumu, lai klients, kas izmanto BDK un SPQuery un uzbrauca zināmas grūtības, izmantojot SPQuery pret dokumentu bibliotēkā, kas satur mapes. Grunts līnija: piešķirt "rekursīvu" skata atribūts vaicājumu, lai.

Mans scenārijs:

  • Pirmdien, Es augšupielādēt dokumentu un sniegt dažas meta dati.
  • Nākamajā nedēļā, Es varu augšupielādēt jaunu dokumentu. Liela daļa šo jauno dokumentu meta dati balstās uz šo dokumentu, es augšupielādēju pirmdien (ko mēs saucam "pamatdokuments").
  • Mēs izveidojām tīmekļa pakalpojumu fasādi, kas nodrošina BDC draudzīgu interfeisu, lai sarakstu tā, lai lietotāji varētu viegli atrast pirmdien dokumenta virsrakstu meklēšanu, izmantojot.
  • BDC datu kolonnas nodrošina lietotājam draudzīgs interfeiss. (Šī ir daļa no maniem mēģinājumiem, izmantojot BDC draudzīgāku uzmeklēšanas kolonnas).

BDC gala fasādes pakalpojumu izmanto vaicājumu kā šis darīt uzmeklēšanas:

 // U2U rīks izmanto, lai palīdzētu radīt CAML vaicājums.
      oQuery.Query =
        "<Kur>";

      Ja (titleFilter.Length > 0)
        oQuery.Query   =
          "  <Un>";

      oQuery.Query   =
        "    <Un>" +
        "      <Geq>" +
        "        <FieldRef Name =  "DocumentId" />" +
        "        <Vērtību tips =  "Text">" + minId + "</Vērtība>" +
        "      </Geq>" +
        "      <Leq>" +
        "        <FieldRef Name =  "DocumentId" />" +
        "        <Vērtību tips =  "Text">" + maxId + "</Vērtība>" +
        "      </Leq>" +
        "    </Un>";

      Ja (titleFilter.Length > 0)
        oQuery.Query   =
          "    <Satur>" +
          "      <FieldRef Name =  "Title" />" +
          "      <Vērtību tips =  "Text">" + titleFilter + "</Vērtība>" +
          "    </Satur>" +
          "  </Un>";
      oQuery.Query   =
        "</Kur>";

Attīstības sākotnējā posmā, Tas strādāja lieliski. Tomēr, mēs iepazīstinājām mapes direktorijā atrisināt dažas problēmas, un pēkšņi, manu BDC atlasītāju nebūtu neatgriež rezultātus. Tas ir reģistrētas uz faktu, ka SPQuery būtu nekad neatgriež rezultātus. Mēs izmantojām mapes pirmām kārtām, lai atļautu vairākus failus ar tādu pašu nosaukumu, tiks augšupielādēti, bet ar dažādu meta datu. Kad fails ir augšupielādēts, mēs izveidot mapi, balstoties uz saraksta vienuma ID un pēc tam pārvietojiet failu tur (Es rakstīja par to, ka šeit; mēs esam bija dažāda ar šo pieeju, bet par visu, tas strādā labi). Lietotājs nav jārūpējas par mapēm un patiesībā, īsti nesaprotu visas mapes. Mums esat konfigurējis visus viedokļus par bibliotēkā, lai rādītu vienumus bez mapēm.

Šo problēmu, divreiz tehnisko īstenošanu attīstījusies un atrisināt to savādāk katru reizi, kad es hit. Pirmo reizi, Es nebiju izmantojot satur operatoru vaicājumā. Bez satur operators, Man bija iespēja, lai atrisinātu problēmu, norādot viedoklis par SPQuery contructor. Tā vietā, lai izmantotu noklusēto konstruktoru:

SPList oList = interneta.Saraksti["Dokumenti"];

SPQuery oQuery = jaunā SPQuery();

Tā vietā izmantotas, konstruktoru, kas norādīta skatu:

SPList oList = interneta.Saraksti["Dokumenti"];

SPQuery oQuery = jaunā SPQuery(oList.Views["Visi dokumenti"]);

Kas atrisināt problēmu, un es sāku saņemt manus rezultātus.

Pēc tam pievienoju satur operatora samaisa un atkal aizlūza. Izrādās, ka satur operators, ciktāl es varu pateikt, nedarbojas skatā tāpat kā vienkāršāku GEQ / LEQ operatori. I did dažas meklēšanu un uzzināju, ka vaicājums ViewAttributes jābūt iestatītam "Rekursīvu", kā:

oQuery.ViewAttributes = "Jomu = "Recursive"";

Kas izšķīrās par satur. patiesībā, Tas arī atrisināt manu sākotnējo meklēšanas problēmu un ja man bija norādīts rekursīvs atribūts, pirmo reizi, Es varētu nevar būt izskriet jautājumu vēlreiz.

Fakts, ka daži operatori darbojas skata balstītu SPQuery (GEQ/LEQ) u.c. ne (SATUR), apvienojumā ar faktu, ka KPI nešķiet strādāt vispār ar mapi, kas ietver dokumentu bibliotēkas rezultātā man domāt, ka SPQuery ir daži orthogonality jautājumi.

Īpašs paldies:

  • Labas folks pie U2U un to vaicājuma rīku.
  • Michael Hoffer lielo "mācīties darot" emuāra ierakstā, Komentāri un atbildes.

</beigās>

Abonēt manu blogu!

Technorati Tags: Technorati Tags: ,

3 domas par "Šķīdums: SPQuery nav meklēšanas mapes

  1. Bez nosaukuma

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

    Atbilde

Atstāt atbilde Paul Galvin Atcelt atbildi

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti *