Base: 3. Zustand bei Ja/Nein Datentyp BOOLEAN??

Nabend liebe Liste!

Gibt es einen "dritten Zustand" beim Datentyp BOOLEAN?

Ich habe in der grafischen Benutzeroberfäche eine Abfrage erstellt, die
zwei Felder mit dem Datenty BOOLEAN enthält.

SELECT "st_ID", "zae_id", "st_zaehler", "st_datum", "st_differenz",
"st_programm", "st_obsolet" FROM "zaehlerstaende" WHERE "zae_id" = 0 AND
"st_obsolet" = FALSE ORDER BY "st_datum" ASC

In der grafischen Oberfläche kann man ja bekanntlich die Kästchen in der
Liste mit den Abfrageergebnissen anklicken und da gibt es dann drei
mögliche Zustände.

Zustand 1. Kästchen ist leer und weiß
Zustand 2. Kästchen ist mit einem Haken versehen und orange hinterlegt.
(oder vielleicht auch je nach Einstellung des Desktops eine andere
Farbe, keine Ahnung).
Zustand 3. Kästchen ist nur orange hinterlegt und nicht mit einem Haken
versehen.

Mit der oben wiedergegebenen Abfrage bekomme ich alle Datensätze mit
Kästchen im Zustand 1 angezeigt.
Wenn ich "st_obsolet" = TRUE setze bekomme ich alle Datensätze mit
Kästchen im Zustand 2 angezeigt, aber die Datensätze im Zustand 3
bleiben ausgeblendet.

Das hatte ich mit anders vorgestellt.
Wie kann ich es anstellen dass ich, wie man es erwarten würde, entweder
alle Kästchen mit Haken (TRUE) oder alle ohne Haken angezeigt bekomme???

Merkwürdiges Verhalten, finde ich ..

Danke ..
Gruß Wolfgang

Hallo Wolfgang,

Nabend liebe Liste!

Gibt es einen "dritten Zustand" beim Datentyp BOOLEAN?

Es gibt in Datenbanken einen Wert, der soviel wie "keine Angabe"
bedeutet. Link zum Thema:

  http://de.wikipedia.org/wiki/NULL

Gruß,
Michael

Hallo Wolfgang,

"st_obsolet" = TRUE
zeigt alle Felder an, die angekreuzt sind.
Statt TRUE geht auch 1
"st_obsolet" = FALSE
zeigt alle Felder an, die nicht angekreuzt sind, aber tatsächlich mit
diesem Wert belegt sind
Statt FALSE geht auch 0
"st_obsolet" IS NULL
zeigt alle Felder an, die nie ausgefüllt wurden.

Setzt Du bei einer Datenbank am Anfang den Default auf "FALSE", so hast
Du keine Felder mit NULL.

Ohne "Haken" kriegst Du also nur sicher, wenn Du
"st_obsolet" = FALSE OR "st_obsolet" IS NULL
angibst.

Du wirst ein einfach leeres Kästchen, das nie eine Eingabe gehabt hat,
nie über eine Suchfunktion finden -außer über IS NULL. Das gilt für alle
Feldtypen - auch für BOOLEAN.

Gruß

Robert