Ik ben een query aan met maken voor m'n ListViewByQuery lijst (wat een adreslijst/personenlijst moet gaan worden). In eerste instantie wilde ik een query doen op een lijst waarin de Title niet null is. Dat is behoorlijk eenvoudig.
Ook heb ik al voor elkaar dat ik een soort van LIKE heb ingebouwd, zodat wanneer je op 'hen' zoekt, je de personen 'Hendrik', 'Henk', 'Hendrikssen', etc. terug krijgt. Dit was even puzzelen, maar ook wel te doen.
Nu heb ben ik deze query weer aan het uitbreiden.
Op dit moment moet je namelijk nog steeds bovenstaande zoekacties kunnen doen (dus met die namen), maar ook moeten de personen in 1 of meerdere locaties zitten.
In m'n webpart property geef ik bijvoorbeeld de locaties 'Oost', 'Noord' en 'Zuid' op en in m'n zoekveld 'hen'.
Dan moet ik alleen de personen terug krijgen die aan de conditie 'hen' voldoen en aan de locatie.
Om het voor mezelf simpel te maken heb ik die naam eerst maar gezet op Title is not null, om zo m'n query te versimpelen.
Het probleem zit hem nu in m'n meerdere or's.
M'n query ziet er zo een beetje uit (iets ingekort en met andere namen)
Bij het uitvoeren van deze query krijg je de foutmelding:
Google
Technet
Zelf denk ik dat het komt dat de lijst nu ziet dat er maar 1 parameter is in het AND-statement, wat op zich ook zo is. Probleem is dat ik niet zie hoe je anders een dergelijke query moet gaan opbouwen.
De u2u caml query builder kan niet overweg met dit soort nested or's en and's, dus daar heb ik momenteel weinig aan (heb versie 3.1.0.0 geinstalleerd).
Anderen met een idee hierover?
Ook heb ik al voor elkaar dat ik een soort van LIKE heb ingebouwd, zodat wanneer je op 'hen' zoekt, je de personen 'Hendrik', 'Henk', 'Hendrikssen', etc. terug krijgt. Dit was even puzzelen, maar ook wel te doen.
Nu heb ben ik deze query weer aan het uitbreiden.
Op dit moment moet je namelijk nog steeds bovenstaande zoekacties kunnen doen (dus met die namen), maar ook moeten de personen in 1 of meerdere locaties zitten.
In m'n webpart property geef ik bijvoorbeeld de locaties 'Oost', 'Noord' en 'Zuid' op en in m'n zoekveld 'hen'.
Dan moet ik alleen de personen terug krijgen die aan de conditie 'hen' voldoen en aan de locatie.
Om het voor mezelf simpel te maken heb ik die naam eerst maar gezet op Title is not null, om zo m'n query te versimpelen.
Het probleem zit hem nu in m'n meerdere or's.
M'n query ziet er zo een beetje uit (iets ingekort en met andere namen)
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
| <Where> <And> <IsNotNull> <FieldRef Name='Title' /> </IsNotNull> <Or> <Or> <Or> <Or> <Or> <Or> <Or> <Or> <Or> <Or> <Contains> <FieldRef Name='Locatie' /> <Value Type='Lookup'>Locatie 10</Value> </Contains> </Or> <Contains> <FieldRef Name='Locatie' /> <Value Type='Lookup'>Locatie 9</Value> </Contains> </Or> <Contains> <FieldRef Name='Locatie' /> <Value Type='Lookup'>Locatie 8</Value> </Contains> </Or> <Contains> <FieldRef Name='Locatie' /> <Value Type='Lookup'>Locatie 7</Value> </Contains> </Or> <Contains> <FieldRef Name='Locatie' /> <Value Type='Lookup'>Locatie 6</Value> </Contains> </Or> <Contains> <FieldRef Name='Locatie' /> <Value Type='Lookup'>Locatie 5</Value> </Contains> </Or> <Contains> <FieldRef Name='Locatie' /> <Value Type='Lookup'>Locatie 4</Value> </Contains> </Or> <Contains> <FieldRef Name='Locatie' /> <Value Type='Lookup'>Locatie 3</Value> </Contains> </Or> <Contains> <FieldRef Name='Locatie' /> <Value Type='Lookup'>Locatie 2</Value> </Contains> </Or> <Contains> <FieldRef Name='Locatie' /> <Value Type='Lookup'>Locatie 1</Value> </Contains> </Or> </And> </Where> |
Bij het uitvoeren van deze query krijg je de foutmelding:
terug, wat er normaliter op neer komt dat je je kolom typen niet goed hebt gedefinieerd. In dit geval ligt het echter aan de opbouw van de query, wat ook een oorzaak kan zijn voor deze foutmeldingEen of meer veldtypen is niet goed geïnstalleerd. Ga naar de pagina met instellingen voor de lijst en verwijder deze velden.
Technet
Zelf denk ik dat het komt dat de lijst nu ziet dat er maar 1 parameter is in het AND-statement, wat op zich ook zo is. Probleem is dat ik niet zie hoe je anders een dergelijke query moet gaan opbouwen.
De u2u caml query builder kan niet overweg met dit soort nested or's en and's, dus daar heb ik momenteel weinig aan (heb versie 3.1.0.0 geinstalleerd).
Anderen met een idee hierover?
[ Voor 16% gewijzigd door Jan_V op 23-02-2009 16:49 . Reden: De CAML-query gewijzigd naar de echte query ivm fout in de query zoals Huhu aangaf. ]
Battle.net - Jandev#2601 / XBOX: VriesDeJ