Ateb: SPQuery Nid yw Chwilio Folders

Yr oedd yn ei gweithredu'r wythnos ddiwethaf hon "yn esblygu" ateb ar gyfer cleient sy'n defnyddio BDC a SPQuery, ac yn rhedeg i rai anhawster defnyddio SPQuery erbyn Llyfrgell ddogfen sy'n cynnwys ffolderi. Llinell waelod: neilltuo "ailadroddus" i'r casgliad priodoledd yr ymholiad.

Fy senario:

  • Ar ddydd Llun, I'n llwytho dogfen a chyflenwi rhywfaint o ddata meta.
  • Yr wythnos ganlynol, Yr wyf yn lanlwytho dogfen newydd. Mae llawer o'r data meta ddogfen newydd hon yn seiliedig ar y ddogfen a llwytho i fyny yr ddydd Llun (yr ydym yn galw "meistr ddogfen").
  • Rydym wedi creu ffasâd gwasanaeth ar y we sy'n darparu rhyngwyneb BDC-gyfeillgar at y rhestr fel y gall defnyddwyr ddod o hyd y ddogfen honno Dydd Llun yn hawdd drwy chwilio teitl.
  • Mae Colofn data BDC yn darparu rhyngwyneb defnyddiwr cyfeillgar. (Mae hyn yn rhan o fy ymgais i ddefnyddio BDC ar gyfer colofn-edrych yn fwy cyfeillgar).

Mae'r gwasanaeth ffasâd BDC terfynol yn defnyddio ymholiad fel hyn i wneud y-edrych:

 // Offeryn U2U defnyddio i helpu i gynhyrchu hwn ymholiad CAML.
      oQuery.Query =
        "<Lle>";

      os (titleFilter.Length > 0)
        oQuery.Query   =
          "  <Ac>";

      oQuery.Query   =
        "    <Ac>" +
        "      <Geq>" +
        "        <Enw FieldRef =. "DocumentId" />" +
        "        <Gwerth math =. "Text">" + MinID + "</Gwerth>" +
        "      </Geq>" +
        "      <Leq>" +
        "        <Enw FieldRef =. "DocumentId" />" +
        "        <Gwerth math =. "Text">" + maxId + "</Gwerth>" +
        "      </Leq>" +
        "    </Ac>";

      os (titleFilter.Length > 0)
        oQuery.Query   =
          "    <Yn cynnwys>" +
          "      <Enw FieldRef =. "Title" />" +
          "      <Gwerth math =. "Text">" + titleFilter + "</Gwerth>" +
          "    </Yn cynnwys>" +
          "  </Ac>";
      oQuery.Query   =
        "</Lle>";

Yn ystod y cam cychwynnol o ddatblygu, Roedd hyn yn gweithio'n iawn. Fodd bynnag,, cyflwynwyd ffolderi i mewn i'r cyfeiriadur i ddatrys rhai problemau ac yn sydyn, Ni fyddai fy picker BDC yn dychwelyd unrhyw ganlyniadau. Olrhain yr hyn i lawr at y ffaith na fyddai y SPQuery byth yn dychwelyd unrhyw ganlyniadau. Rydym yn defnyddio ffolderi bennaf er mwyn caniatáu sawl ffeil gyda'r un enw i llwytho i fyny ond gyda gwahanol meta data. Pan fydd y ffeil ei llwytho i fyny, rydym yn creu ffolder yn seiliedig ar adnabod yr eitem rhestr ac yna symud y ffeil yno (Ysgrifennais am hynny yma; rydym wedi cael canlyniadau cymysg â'r dull hwn, ond ar y cyfan, mae'n gweithio'n dda). Y defnyddiwr ddim gofal am ffolderi ac yn wir, Dydw i ddim wir yn deall nad oes unrhyw ffolderi. Rydym wedi ffurfweddu holl safbwyntiau ar y Llyfrgell i ddangos eitemau heb ffolderi.

Cyrraedd y broblem hon ddwywaith fel gweithredu technegol wedi esblygu a datrys ei wahanol bob tro. Y tro cyntaf, Doeddwn i ddim yn defnyddio gweithredwr y cynnwys yn yr ymholiad. Heb un gweithredwr yn cynnwys, Llwyddodd i ddatrys y broblem trwy nodi barn ar contructor y SPQuery. Yn hytrach na defnyddio adeiladwr diofyn:

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

SPQuery oQuery = newydd SPQuery();

Yr wyf yn hytrach na defnyddio Constructor hyn a bennir golwg:

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

SPQuery oQuery = newydd SPQuery(oList.Views["Holl ddogfennau"]);

Mae hynny'n datrys y broblem a dechreuais i gael fy nghanlyniadau.

Ychwanegais y gweithredwr cynnwys wedyn yn y cymysgedd a dorrodd eto. Mae'n troi allan fod y gweithredwr yn cynnwys, cyn belled ag y gallaf ddweud, ddim yn gweithio â barn yr un ffordd ag y mae GEQ symlach / Gweithredwyr AALl. Oedd rhai chwilio ac yn dysgu y dylid pennu ViewAttributes yr ymholiad i "Ailadroddus", fel yn:

oQuery.ViewAttributes = "Gwmpas =."Recursive"";

Roedd hynny'n datrys y broblem ar gyfer cynnwys. Yn wir,, hyn hefyd yn datrys problem fy chwiliad gwreiddiol ac os wyf wedi nodi y priodoledd recursive y tro cyntaf, Fyddwn i ddim wedi rhedeg i mewn i'r mater eto.

Mae'r ffaith bod SPQuery sy'n seiliedig ar farn yn gweithio ar gyfer rhai gweithredwyr (GEQ/LEQ) ac nid eraill (CYNNWYS), ynghyd â'r ffaith nad yw DPAau yn ymddangos i weithio o gwbl gyda llyfrgelloedd dogfen ffolder sy'n cynnwys fy arwain i gredu bod SPQuery wedi rhai materion orthogonality.

Diolch arbennig:

  • Mae'r Folks da am U2U ac mae eu dull ymholiad.
  • Michael Hoffer yn wych "dysgu drwy wneud" swydd blog, sylwadau ac ymatebion.

</diwedd>

Tanysgrifio i fy mlog!

3 meddyliau ar "Ateb: SPQuery Nid yw Chwilio Folders

  1. Dim enw

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

    Ateb

Ad a Ateb

Ni fydd eich cyfeiriad e-bost yn cael ei gyhoeddi. Meysydd gofynnol yn cael eu marcio *