Boolsche Werte in der Datenbank

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Joh
Lazarusforum e. V.
Beiträge: 177
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Boolsche Werte in der Datenbank

Beitrag von Joh »

Jaa, ich lus hier im Forum, das 42 wahrer ist als 1...

Aber kann ich die in die DB (Firebird 4.0 via TSQLQuery) geschriebenen Werte beeinflussen?
Hier: ein (nicht von mir vorgegebenes) Integer-Feld in einer Tabelle.
0 - false
1 - true
Sobald ich das in einer TDBCheckbox anzeige: alles gut.
True wird zu False und False zu True...

Aber in der DB wird jetzt -1 gespeichert. Solange nur ich drauf zugreife: ok;

Code: Alles auswählen

if wert <> 0
Alte Abfragen gehen auf

Code: Alles auswählen

if wert = 1
und fallen auf die Nase.

Klar kann ich nachträglich den Wert auf 1 ändern, aber da gibts doch bestimmt was von Ratiofarm...
DBCheckBox.ValueChecked / ValueUnchecked und
SQLQuery.DisplayValue
sind es nicht...
just my two Beer

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Boolsche Werte in der Datenbank

Beitrag von af0815 »

Das mit Wert <> 0 für true und Wert = 0 für false wird passen. Zumindest verwendet man das am MSSQL-Server so. 0 = false, ungleich 0 (egal welches Vorzeichen) ist true. Mit der Annahme bin ich bisher gut gefahren.

https://stackoverflow.com/questions/313 ... s-in-mysql
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten