Entwickler-Ecke
Datenbanken - ADO Table Datenfeld auf NULL prüfen
Quake User - Do 06.01.11 00:39
Titel: ADO Table Datenfeld auf NULL prüfen
Wie prüfe ich ein Datenfeld auf NULL? Das Feld ist ja leer. Eine Prüfung wie:
Delphi-Quelltext
1:
| if (DataModul.ADOTable.FieldByName('Test').Value = '') then |
funktioniert aber nicht. Ich kann kompilieren, aber der if Fall tritt nie ein.
Der Datentyp von "Value" ist variant. Den kann ich sicher nicht auf NULL prüfen. ?
bummi - Do 06.01.11 00:50
Delphi-Quelltext
1:
| If DataModul.ADOTable.FieldByName('Test').IsNull ... |
Quake User - Do 06.01.11 01:10
bummi hat folgendes geschrieben : |
Delphi-Quelltext 1:
| If DataModul.ADOTable.FieldByName('Test').IsNull ... | |
Ich hatte folgendes getestet:
Delphi-Quelltext
1:
| If DataModul.ADOTable.FieldByName('Test').AsString = '' |
Aber "IsNull" ist sicher sauberer.
Tankard - Do 06.01.11 01:26
Quake User hat folgendes geschrieben : |
Ich hatte folgendes getestet:
Delphi-Quelltext 1:
| If DataModul.ADOTable.FieldByName('Test').AsString = '' |
Aber "IsNull" ist sicher sauberer. |
ein leerer String und NULL sind zwei verschiede paar schuhe.
daher aufgepasst.
Moderiert von
Narses: Zitat repariert.
Tranx - Do 06.01.11 08:45
Ich weiß aus meinen ersten Erfahrungen mit Delphi XE, dass derWert NULL dort nicht definiert ist. Ich hatte bei Units, in der einer Variant-Variablen NUL zugewiesen wurden, Fehler beim Compilieren bekommen.
Daher bleibt nur die schon benannte Abfrage .isNull
Delete - Do 06.01.11 15:01
wenn variants in der uses liste steht, dann geht der check myfield.asvariant = null
Quake User - Fr 07.01.11 02:15
bummi hat folgendes geschrieben : |
Delphi-Quelltext 1:
| If DataModul.ADOTable.FieldByName('Test').IsNull ... | |
FYI: Ich habe festgestellt, dass "IsNull" nicht darauf prüft, ob das Datenfeld in der DB wirklich = NULL ist. Es prüft nur auf leer.
Damit ist die Prüfung auf den Leerstring genau so gut.
bummi - Fr 07.01.11 10:07
@Quake User
Einspruch Euer Ehren....
NULL und Leer('') sind zwei komplett verschiedene Sachen, spätestens beim verketten von Felder per SQL in einer ansikonformen Datenbank wirst Du dies merken.
Quake User - Mo 17.01.11 03:34
bummi hat folgendes geschrieben : |
@Quake User
Einspruch Euer Ehren....
NULL und Leer('') sind zwei komplett verschiedene Sachen, spätestens beim verketten von Felder per SQL in einer ansikonformen Datenbank wirst Du dies merken. |
Genau das habe ich doch oben geschrieben. Oder? Ich kenne den Unterschied zwischen 0 und NULL.
bummi - Mo 17.01.11 08:42
dann verstehe ich Dein letztes Posting nicht...
Delphi-Quelltext
1:
| DataModul.ADOTable.FieldByName('Test').IsNull. |
liefert bei einem Leerstring erwartungsgemäß FALSE.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!