2 Stimmen

CAML-Abfrageelemente mit den angegebenen URLs

In SP2007/MOSS muss ich eine CAML-Abfrage gegen eine einzelne Liste wie folgt ausführen:

<Where>
    <Or>
        <Eq>
            <FieldRef Name='URL' />
            <Value Type='URL'>/path/item1.aspx</Value>
        </Eq>
        <Eq>
            <FieldRef Name='URL' />
            <Value Type='URL'>/path/item4.aspx</Value>
        </Eq>
        <Eq>
            <FieldRef Name='URL' />
            <Value Type='URL'>/path/item7.aspx</Value>
        </Eq>
    </Or>
</Where>

Das praktische Ergebnis wäre, dass ich eine SPListItemCollection der Elemente habe, für die ich die URLs hatte.

Ich erhalte jedoch die Fehlermeldung 'Ein oder mehrere Feldtypen sind nicht richtig installiert. Gehen Sie zur Seite mit den Listeneinstellungen, um diese Felder zu löschen.'

Alle Elemente in der Liste sind vom gleichen Inhaltstyp. Der einzige relevante Fehler in den SP-Protokollen zeigt die gleiche Meldung an.

Die Antwort löste dieses spezifische Problem nicht, war aber letztendlich richtig (Or's müssen verschachtelt werden). Das Problem war, dass mein Feld Value Type FileRef hätte sein sollen.

3voto

Alex Angas Punkte 57602

Dieser Fehler tritt fast immer auf, weil Ihre CAML-Abfrage nicht korrekt ist. Haben Sie versucht, sie wie folgt zu formatieren:

<Where>
    <Or>
        <Eq>
            <FieldRef Name='URL' />
            <Value Type='URL'>/path/item1.aspx</Value>
        </Eq>
        <Or>
            <Eq>
                <FieldRef Name='URL' />
                <Value Type='URL'>/path/item4.aspx</Value>
            </Eq>
            <Eq>
                <FieldRef Name='URL' />
                <Value Type='URL'>/path/item7.aspx</Value>
            </Eq>
        </Or>
    </Or>
</Where>

Ich bin mir ziemlich sicher, dass man nur zwei Komponenten in einem Oder- oder Und-Zweig haben kann.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X