VB6.0 - Jet4.0 - ADO - SQL-Statement - Leerstring

27/08/2008 - 21:22 von Matthias Lange | Report spam
Hallo HG,

aus VB6.0 greife ich über ADO auf eine Jet4.0-Datenbank zu und habe ein
Problem mit einem SQL-Statement.

Ich habe ein Textfeld 'Artikel': Feldgröße 20, keine Eingabe erforderlich,
leere Zeichenfolge möglich, nicht indiziert, Unicode-Kompression).

Mein Select-Statement soll mir alle Datensàtze rausfiltern, deren
'Artikel'-Feld KEINE Eingabe enthàlt.

Also habe ich es mit folgendem Statement versucht: "SELECT * FROM Tabelle
WHERE Artikel=''"

Nun das Problem:
Es werden nur knapp die Hàlfte der erwarteten Datensàtze selektiert,
reproduzierbar immer die gleichen. Wenn ich mir die Artikel-Felder der
einzelnen Datensàtze ansehe, so erkenne ich dort keinen Unterschied (dort
stehen nirgends irgendwelche Leerzeichen, es handelt sich tatsàchlich um
Leerstrings, die Datensàtze sollten also vom SQL-Statement erfasst werden).

Wo liegt das Problem? Wie kann ich die Abfrage anpassen?

Danke
Matthias
 

Lesen sie die antworten

#1 Nikolai Wylutzki
27/08/2008 - 21:50 | Warnen spam
Wahrscheinlich enthalten diese Artikel den Feldinhalt "NULL"
Null ist logisch etwas anderes als ein Feldinhalt mit ""

Erweitere doch mal Deine Wahere Abfrage mit

SELECT * FROM Tabelle WHERE (Artikel='') OR (Artikel IS NULL)


Matthias Lange schrieb:
Hallo HG,

aus VB6.0 greife ich über ADO auf eine Jet4.0-Datenbank zu und habe ein
Problem mit einem SQL-Statement.

Ich habe ein Textfeld 'Artikel': Feldgröße 20, keine Eingabe erforderlich,
leere Zeichenfolge möglich, nicht indiziert, Unicode-Kompression).

Mein Select-Statement soll mir alle Datensàtze rausfiltern, deren
'Artikel'-Feld KEINE Eingabe enthàlt.

Also habe ich es mit folgendem Statement versucht: "SELECT * FROM Tabelle
WHERE Artikel=''"

Nun das Problem:
Es werden nur knapp die Hàlfte der erwarteten Datensàtze selektiert,
reproduzierbar immer die gleichen. Wenn ich mir die Artikel-Felder der
einzelnen Datensàtze ansehe, so erkenne ich dort keinen Unterschied (dort
stehen nirgends irgendwelche Leerzeichen, es handelt sich tatsàchlich um
Leerstrings, die Datensàtze sollten also vom SQL-Statement erfasst werden).

Wo liegt das Problem? Wie kann ich die Abfrage anpassen?

Danke
Matthias

Ähnliche fragen