Zijn er bekende problemen met UPPER, LOWER SQL-functies in ArcGIS 10, bestand GDB?

Platform: ArcGIS 10 SP3, .NET

Ik gebruik: IQueryFilter queryFilter = new QueryFilterClass (); met ArcGIS .NET SDK en een query maken ...

Does anybody had problems using UPPER(stringField) and LOWER(stringField) functions on esri file geodatabases? If so, please share links to some "confirmed-will-fix-in-2-years" pages...

Ik weet dat we daar wat "oude" waarschuwingen in onze codebasis over hebben. Like we dat UPPER (stringField1) = UPPER (stringField2) niet werkt op bestand gdb. Vorige week kwam ik het weer tegen maar het lijkt erop dat ik zelfs de UPPER (stringField) = ('STRING-IN-mixedCACE'.toUpper ()) -query niet kon vinden om iets in gdb te vinden. UPPER (stringField) = 'STRING-IN-UPPERCACE' werkt, maar de UPPER zou beter de naam NOOP moeten hebben.

Voorbeeld. Er is een record in fgdb waarbij stringField = 'Abc'. De query UPPER (stringField) = 'ABC' retourneert 0 records. (Fout: moet 1 zijn!)

PS. Zulke UPPER/LOWER-query's lijken correct te werken in ArcMap bij het gebruik van de query voor de definitielaagdefinitie.

Voorbeeld 2.

Table (id, stringField)
1, 'Abc'
2, 'ABC'

QueryFilter: where UPPER(stringField)='ABC'
returns: (2, 'ABC')
should-return: (1, 'Abc'), (2, 'ABC')
2
Misschien begrijp ik je vraag verkeerd, maar ik weet niet zeker welke resultaten je verwacht. UPPER (stringField) = 'mixedCASE' komt nooit overeen. UPPER (stringField = 'ABC') komt ook nooit overeen. UPPER (stringField) = 'ABC' is de juiste uitdrukking.
toegevoegd de auteur Nathan Bedford, de bron
Dat is voor jou aandacht, je hebt gelijk. Heb wat bewerkingen gedaan.
toegevoegd de auteur Jarrett Meyer, de bron

1 antwoord

Gebruikt u de volgende SQL-sytax met iQueryFilter.WhereClause?

Query: select * where UPPER(stringField)='ABC'

Omit Select * Where from the expression. The syntax for IQueryFilter.WhereClause is UPPER("LAST_NAME") = 'JONES'

Om FGDB (evenals de D-Base tabel, Coverage Info tabel of Shapefile) te bevragen, moet u de veldnaam in dubbele aanhalingstekens omsluiten.

Meer hier

1
toegevoegd
Nee, ik gebruik geen 'select *', heb een vraag bijgewerkt ... Bedankt voor uw suggestie voor een dubbele aanhaling, zal later worden gecontroleerd.
toegevoegd de auteur Jarrett Meyer, de bron
Ik stopte bij een onderbrekingspunt en gebruikte die mooie Visual Studio-functie direct in een venster of zo. (Ik heb geprobeerd q te zoeken naar een exacte naam, maar het lijkt erop dat andere jongens van andere functies houden, dus die naam is misschien niet helemaal correct.) Het ziet er naar uit dat namen (LAST_NAME -> "LAST_NAME") ook niet werken.
toegevoegd de auteur Jarrett Meyer, de bron
Vervolgens heb ik geprobeerd een 'test voor een mislukte eenheid' te schrijven, maar (waarschijnlijk) vastgesteld dat er een aantal problemen zijn met het instellen van licenties in MTA. q-doorzocht ... Hrr. Er zijn veel te veel "powerpoint-programmeurs" in esri ... (trouwens, heb je die kleine letters opgemerkt ?!) Dus dit kan enige tijd duren.
toegevoegd de auteur Jarrett Meyer, de bron