Minulý týždeň som sa vykonáva "vyvíja" riešenie pre klienta, ktorý využíva BDC a SPQuery a narazil na niektoré problémy s používaním SPQuery proti knižnice dokumentov, ktorá obsahuje priečinky. Sečteno podtrženo: priradiť "rekurzívne" atribút zobrazenia dotazu.
Môj scenár:
- V pondelok, Nahrať dokument a poskytnúť nejaké meta údaje.
- Nasledujúci týždeň, Nahrať nový dokument. Moc tento nový dokument meta údajov vychádza z dokumentov, ktoré som nahral v pondelok (ktorú nazývame "nadradený dokument").
- Sme vytvorili webovú službu fasádou, ktorá poskytuje BDC-priateľské rozhranie do zoznamu tak, aby užívatelia mohli ľahko vyhľadať pondelok dokumentu prostredníctvom vyhľadávania na názov.
- Stĺpec údajov BDC poskytuje priateľské užívateľské rozhranie. (Toto je časť môjho pokusu pomocou BDC šetrnejší vyhľadávacieho stĺpca).
Konečné fasádu služba BDC používa dotaz ako to urobiť vyhľadávanie:
// Použité U2U nástroj na pomoc pri vytváraní dotazu CAML. oQuery.Query = "<Kde>"; Ak (titleFilter.Length > 0) oQuery.Query = " <A>"; oQuery.Query = " <A>" + " <GEQ>" + " <FieldRef meno = "DocumentId" />" + " <Typ hodnoty = "Text">" + minId + "</Hodnota>" + " </GEQ>" + " <LEQ>" + " <FieldRef meno = "DocumentId" />" + " <Typ hodnoty = "Text">" + maxId + "</Hodnota>" + " </LEQ>" + " </A>"; Ak (titleFilter.Length > 0) oQuery.Query = " <Obsahuje>" + " <FieldRef meno = "Title" />" + " <Typ hodnoty = "Text">" + titleFilter + "</Hodnota>" + " </Obsahuje>" + " </A>"; oQuery.Query = "</Kde>";
V počiatočnej fáze vývoja, Táto skvelá pracoval. Avšak, sme zaviedli priečinky do adresára vyriešiť niektoré problémy a zrazu, môj výber BDC nechcel vrátiť žiadne výsledky. Sledoval som to tým, že SPQuery by sa nikdy nevráti žiadne výsledky. Použili sme priečinky predovšetkým umožniť viac súborov s rovnakým názvom byť nahraný, ale s rôznymi meta dáta. Keď sa súbor odovzdáva, vytvoríme priečinok na základe identifikácia položky zoznamu a potom premiestnite súbor tam (Napísal som o tom tu; mali sme zmiešané výsledky s týmto prístupom, ale na celom, to funguje dobre). Užívateľ nestarajú o priečinkoch a v skutočnosti, nechápe, že neexistujú žiadne priečinky. Sme nakonfigurovaný všetkých zobrazení knižnice na zobrazenie položiek bez ohľadu na priečinky.
Trafil som tento problém dvakrát ako technickú realizáciu vyvinul a vyriešil to inak zakaždým. Po prvýkrát, Nebol pomocou operátora obsahuje v dotaze. Bez toho, aby prevádzkovateľ obsahuje, Bol som schopný vyriešiť zadaním pohľad na SPQuery contructor. Namiesto použitia predvolený konštruktor:
SPList oList = web.Zoznamy["Dokumenty"];
SPQuery oQuery = nové SPQuery();
Namiesto toho použiť konštruktor uvedenej zobrazenie:
SPList oList = web.Zoznamy["Dokumenty"];
SPQuery oQuery = nové SPQuery(oList.Views["Všetky dokumenty"]);
Problém vyriešil a začal som sa dostať moje výsledky.
Následne sa pridá operátor obsahuje do mixu a to zlomil znova. Ukazuje sa, že obsahuje operátora, tak ďaleko, ako môžete povedať, nefunguje s názorom rovnakým spôsobom ako jednoduchšie GEQ / Prevádzkovatelia LEQ. Urobil nejaké vyhľadávanie a dozvedel, že atribúty zobrazenia dotazu by byť nastavená na "Rekurzívne", rovnako ako v:
oQuery.ViewAttributes = "Rozsah = "Recursive"";
Že problém vyriešil za obsahuje. v skutočnosti, to tiež môj pôvodný Hľadať problém vyriešený a ak mal špecifikovať rekurzívny atribút prvýkrát, Mám by nie bežať na otázku znova.
Skutočnosť, že view-založené SPQuery pracuje niekoľko prevádzkovateľov (GEQ/LEQ) a iné nie (OBSAHUJE), spolu s tým, že indikátory KPI nezdá sa pracovať vôbec priečinok obsahujúci dokument knižnice vedie mi veriť, že SPQuery má niektorí orthogonality problémy.
Osobitné poďakovanie:
- Dobrý ľudí na U2U a nástroj ich dotazu.
- Michael Hoffer veľký "učenie praxou" blogu, Komentáre a reakcie.
</koniec>
http://www.batteryfast.co.uk/asus/w3v.htm batéria Asus w3v,
http://www.batteryfast.co.uk/asus/w3000a.htm batéria Asus w3000a,
http://www.batteryfast.co.uk/asus/w3000.htm batéria Asus w3000,
http://www.batteryfast.co.uk/asus/w3000v.htm batéria Asus w3000v,
http://www.batteryfast.co.uk/asus/a31-s5.htm batéria Asus a31 s5,
http://www.batteryfast.co.uk/asus/a32-s5.htm batéria Asus a32 s5,
http://www.batteryfast.co.uk/asus/s52n.htm batéria Asus s52n,
http://www.batteryfast.co.uk/asus/s5000.htm batéria Asus s5000,
http://www.batteryfast.co.uk/asus/s5200n.htm batéria Asus s5200n,
http://www.batteryfast.co.uk/asus/s5n.htm batéria Asus s5n,
http://www.batteryfast.co.uk/asus/90-naa1b1000.htm batéria Asus 90-naa1b1000,
http://www.batteryfast.co.uk/asus/s2691061.htm batéria Asus s2691061,
http://www.batteryfast.co.uk/asus/a42-v6.htm batéria Asus a42-v6,
http://www.batteryfast.co.uk/asus/a32-u5.htm batéria Asus a32-u5,
http://www.batteryfast.co.uk/asus/u5f.htm batéria Asus u5f,
http://www.batteryfast.co.uk/asus/u5a.htm batéria Asus u5a,
http://www.batteryfast.co.uk/asus/u5f.htm batéria Asus u5f,
http://www.batteryfast.co.uk/asus/u5.htm batéria Asus u5,
http://www.batteryfast.co.uk/compaq/nw8000.htm batéria Compaq nw8000,
http://www.batteryfast.co.uk/compaq/nc8000.htm batéria Compaq nc8000,
http://www.batteryfast.co.uk/compaq/v1000.htm batéria Compaq v1000,
http://www.batteryfast.co.uk/compaq/nc6000.htm batéria Compaq nc6000,
http://www.batteryfast.co.uk/compaq/nx5000.htm batéria Compaq nx5000,
http://www.batteryfast.co.uk/compaq/n600.htm batéria Compaq n600,
http://www.batteryfast.co.uk/compaq/n600c.htm batéria Compaq n600c,
http://www.batteryfast.co.uk/compaq/n610c.htm batéria Compaq n610c,
http://www.batteryfast.co.uk/compaq/n610v.htm batéria Compaq n610v,
http://www.batteryfast.co.uk/compaq/n620c.htm batéria Compaq n620c,
http://www.batteryfast.co.uk/compaq/e500.htm batéria Compaq e500,
http://www.batteryfast.co.uk/compaq/e500s.htm batéria Compaq e500s,
http://www.batteryfast.co.uk/compaq/v300.htm batéria Compaq v300,
http://www.batteryfast.co.uk/compaq/v500.htm batéria Compaq v500,
http://www.batteryfast.co.uk/compaq/pp2060.htm batéria Compaq pp2060,
http://www.batteryfast.co.uk/compaq/nx9000.htm batéria Compaq nx9000,
http://www.batteryfast.co.uk/compaq/nx9005.htm batéria Compaq nx9005,
http://www.batteryfast.co.uk/compaq/nx9010.htm batéria Compaq nx9010,
http://www.batteryfast.co.uk/compaq/nx9020.htm Compaq nx9020 batérie,
http://www.batteryfast.co.uk/compaq/n110.htm batéria Compaq n110,
http://www.batteryfast.co.uk/compaq/n110s.htm batéria Compaq n110s,
http://www.batteryfast.co.uk/compaq/pp2101x.htm batéria Compaq pp2101x,
http://www.batteryfast.co.uk/compaq/presario-2100.htm Compaq presario 2100 batérie,
http://www.batteryfast.co.uk/compaq/ze4000.htm batéria Compaq ze4000,
http://www.batteryfast.co.uk/compaq/f4809a.htm batéria Compaq f4809a,
http://www.batteryfast.co.uk/compaq/f4812a.htm batéria Compaq f4812a,
http://www.batteryfast.co.uk/dell/inspiron-700m.htm Dell inspiron 700m batérie,
http://www.batteryfast.co.uk/dell/inspiron-710m.htm Dell inspiron 710m batérie,
http://www.batteryfast.co.uk/dell/latitude-x200.htm batéria Dell latitude x 200,
http://www.batteryfast.co.uk/dell/8u443.htm Dell 8u443 batérie,
http://www.batteryfast.co.uk/dell/312-0058.htm Dell 312-0058 batérie,
Viete, že StringBuilder je osvedčené postupy pre vytváranie dlhých reťazcov, právo?