Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird - DBGrid - Boolean-Problem (https://www.delphipraxis.net/71748-firebird-dbgrid-boolean-problem.html)

trashcandesign 20. Jun 2006 15:14

Datenbank: Firebird • Version: 1.5 • Zugriff über: FBEmbedded

Firebird - DBGrid - Boolean-Problem
 
Hi,

Soweit ich gelesen habe gibt es bei Firebird ja keinen Typ Boolean (obwohl es nach manchen Quellen bei 1.5 diesen Typ geben soll).
Also habe ich mir Kurzerhand einfach eine eigene Domain gemacht, die nur 1 und 0 zulässt. Damit hätte ich ja eigentlich mein Problem Datenbankseitig gelöst.

Wenn ich jetzt aber die Daten aus der DB hole und sie in einem JvDBGrid anzeigen lassen will bringt er mir bei diesen Boolean-Feldern auch nur die Werte 1/0 und nicht, wie bei Boolean-Feldern aus Access gewohnt, Checkboxen.

Nur leider muss ich sowohl Firebird benutzen, als auch Checkboxen anzeigen.
Hat jemand ne Idee, wie ich das hinbekomme?

Gruß
trashcandesign

RWarnecke 20. Jun 2006 15:35

Re: Firebird - DBGrid - Boolean-Problem
 
Hallo,

hier im Forum wurde schon mehrmals das Thema Checkbox in einem DBGrid anzeigen besprochen. Nutze einfach diesen Suchbegriff Hier im Forum suchenDBGrid Checkbox und Du findest ein paar Beiträge wo das Thema besprochen wird. Um dann in die Checkbox noch den Hacken zu setzen, kannst Du ja noch die folgende Funktion benutzen :

Delphi-Quellcode:
function wahrfalsch(wf : Integer):boolean
begin
  result := false;
  if wf = 1 then result := true
  else result := false;
end;

EDatabaseError 20. Jun 2006 16:28

Re: Firebird - DBGrid - Boolean-Problem
 
warum machst du das result 2 mal false das else brauchst du nicht.

RWarnecke 20. Jun 2006 17:48

Re: Firebird - DBGrid - Boolean-Problem
 
Wenn ich nur die IF-Abfrage in die Funktion schreibe, dann bekommt man den Hinweis von Delphi, dass der Rückgabewert nicht deklariert wurde.

Hansa 20. Jun 2006 19:10

Re: Firebird - DBGrid - Boolean-Problem
 
Zitat:

Zitat von RWarnecke
..in die Funktion schreibe, dann bekommt man den Hinweis von Delphi, dass der Rückgabewert nicht deklariert wurde.

Das kommt nicht von Delphi, sondern von der DB. Meinst Du mit "Funktion" eine SP oder was ? Dann gilt : Domains vergessen !

Elvis 20. Jun 2006 19:22

Re: Firebird - DBGrid - Boolean-Problem
 
Zitat:

Zitat von Hansa
Zitat:

Zitat von RWarnecke
..in die Funktion schreibe, dann bekommt man den Hinweis von Delphi, dass der Rückgabewert nicht deklariert wurde.

Das kommt nicht von Delphi, sondern von der DB. Meinst Du mit "Funktion" eine SP oder was ? Dann gilt : Domains vergessen !

Lol! :lol:

btw:
Zitat:

Delphi-Quellcode:
result := false;
if wf = 1 then result := true
else result := false;

Ich werde mich mal nicht an nicht existierenden Einrückungen und sonstigen Erscheinungen in dem Code aufgeilen, aber ist dir aufgefallen, dass du eigentlich nur das hier machst?
Zitat:

result := wf = 1;

Hansa 20. Jun 2006 19:37

Re: Firebird - DBGrid - Boolean-Problem
 
Ja, man merkt den Schnellmerker ! :lol: Vor allem den, der nur Halbwissen hat ! :zwinker: Wo kommt der "Rückgabewert" denn her ? Das Problem liegt nicht an einer einzigen Zeile Beispiel-Code.

RWarnecke 20. Jun 2006 19:39

Re: Firebird - DBGrid - Boolean-Problem
 
Zitat:

Zitat von RWarnecke
Delphi-Quellcode:
function wahrfalsch(wf : Integer):boolean
begin
  result := false;
  if wf = 1 then result := true
  else result := false;
end;

An diese Funktion übergebe ich nur den Wert aus dem Feld und dann funktioniert das auch. Das heißt also, ich mache nicht das

Zitat:

result := wf = 1;
In diesem Fall brauche ich keine Domain oder sonstiges.

Jelly 20. Jun 2006 19:43

Re: Firebird - DBGrid - Boolean-Problem
 
Zitat:

Zitat von trashcandesign
Wenn ich jetzt aber die Daten aus der DB hole und sie in einem JvDBGrid anzeigen lassen will bringt er mir bei diesen Boolean-Feldern auch nur die Werte 1/0 und nicht, wie bei Boolean-Feldern aus Access gewohnt, Checkboxen.

Na dann hast Du ja mal schon ein geeignetes Grid gefunden. Jetzt musst Du deinem Delphi nur noch den Datentyp TBooleanField unterjubeln... Dazu kannst Du ein CalculatedField definieren, das im Endeffekt im OnCalculate Ereigneis deines TDataset nichts anderes macht, als den Wert aus deiner True/False Funktion zu setzen:

Delphi-Quellcode:
Dataset.FieldByName('BoolFeld').AsBoolean := Dataset.FieldByName('IntFeld').AsInteger = 1 ;

Elvis 20. Jun 2006 19:44

Re: Firebird - DBGrid - Boolean-Problem
 
Zitat:

Zitat von RWarnecke
An diese Funktion übergebe ich nur den Wert aus dem Feld und dann funktioniert das auch. Das heißt also, ich mache nicht das
Zitat:

result := wf = 1;

wf war doch der Parameter deiner Funktion. Und du machst
Zitat:

genau
das. ;)
Zitat:

In diesem Fall brauche ich keine Domain oder sonstiges.
Eine Domain kann dir aber bei der Entscheidung helfen, ob die CheckBoxes im Grid darstellen willst oder nicht. Auch wenn das Grid es vllt nicht von alleine weiß. ;)
Ich finde Domains eigentlich ziemlich praktisch und cool. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz