Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#12

AW: Stringverkettung mit NULL-Werten

  Alt 23. Jan 2014, 13:47
Bezüglich der Accessdatenbank hätte ich da mal 'ne Frage:

Sind die Spalten Nachname und/oder Vorname leer oder Null?

Habe eine Datenbank hier, in der einige Felder leer sind, aber die Abfrage select * from program where genre is null kein Ergebnis liefert, aber die Spalte ist in der gesamten Tabelle leer.

Zumindest bei Access scheint es drei Möglichkeiten zu geben:
  1. einen "sichtbaren" Wert
  2. einen "unsichtbaren" Wert
  3. Null
Noch ein paar Beispiele:
Die Spalten genre und lang sind in der gesamten Tabelle leer (in der Anzeige ist kein Wert sichtbar).
select '>'&genre &'-'&lang&'<as Wert from Program where genre is not null and lang is not null ergibt eine leere Ergebnismenge.
select '>'&genre &'-'&lang&'<as Wert from Program where genre is null and lang is null] ergibt als Ergebnis >-<. Die leeren Spalten enthalten also auch kein Leerzeichen, sondern einen leeren String, sind aber nicht Null.
Weiß der Geier warum.

Nachdem ich die Spalte genre auf Null gesetzt habe update program set genre = null where station_id = 3334567 funktioniert auch die Abfrage select '>'&genre &'-'&lang&'<as Wert from Program where genre is null und liefertz alle Sätze zur station_id 3334567.

Diese beiden Abfragen liefern immer ein Ergebnis:
select station_id&', '&genre as Wert from program where genre is not null select station_id&', '&genre as Wert from program where genre is null station_id ist in der gesamten Tabelle gefüllt, genre ist teils leer, teils Null.
Die station_id wird ausgegeben, unabhängig davon, ob genre nun Null, leer oder gefüllt ist.

Zumindest in Bezug auf Access müsste es demnach bei Deiner Datenbank noch eine andere Konstellation geben.

Wie greifst Du auf die Datenbanken zu? (welche Komponenten?)
Tritt der von Dir beschriebene Effekt nur "mittels Delphi" auf oder auch mit den zu den Datenbank gehörenden Oberflächen?
  Mit Zitat antworten Zitat