Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   FireDAC erkennt Boolean schreibt jedoch T/F anstelle von J/N (https://www.delphipraxis.net/182587-firedac-erkennt-boolean-schreibt-jedoch-t-f-anstelle-von-j-n.html)

Kostas 3. Nov 2014 14:21

Datenbank: Firebird • Version: 2,5 • Zugriff über: FireDac

FireDAC erkennt Boolean schreibt jedoch T/F anstelle von J/N
 
Hallo zusammen,

ich habe in einer Firebird DB ein Feld vom Typ char(1) angelegt mit einem Check
J/N. FireDAC möchte unbedingt ein T/F schrieben. Wie kann ich das bitte unterbinden ohne dass ich ExtendedMetadata ausschalten muss?


Code:
CREATE DOMAIN AS_BOOL AS
CHAR(1) CHARACTER SET ISO8859_1
DEFAULT 'N'
NOT NULL
CHECK (VALUE IN ('J','N'))
COLLATE ISO8859_1;
Gruß Kostas

Sherlock 3. Nov 2014 14:27

AW: FireDAC erkennt Boolean schreibt jedoch T/F anstelle von J/N
 
Kannst Du der jeweiligen Komponente nicht den Value für True bzw. False mitgeben?

Sherlock

haentschman 3. Nov 2014 14:31

AW: FireDAC erkennt Boolean schreibt jedoch T/F anstelle von J/N
 
Moin...8-)

wäre 0/1 als SmallInt (Firebird) nicht eleganter weil eindeutiger? Nach Boolean casten ist erst Recht nicht problematisch.

Kostas 3. Nov 2014 14:53

AW: FireDAC erkennt Boolean schreibt jedoch T/F anstelle von J/N
 
Zitat:

Zitat von Sherlock (Beitrag 1278526)
Kannst Du der jeweiligen Komponente nicht den Value für True bzw. False mitgeben?

Sherlock

Ja, ich übergebe True/False und FireDAC versucht T/F zu schrieben. Das geht
jedoch nicht weil ein Contraint (J/N) das verhindert. Ich möchte unbedingt
J/N schreiben denn es handelt sich um eine Anwendung die umgeschrieben wird
von Delphi 5 mit IBObjects auf Delphi XE7 mit FireDAC.
Das wird doch gehen zu bestimmen was true und false ist oder?

Gruß Kostas

Kostas 3. Nov 2014 14:55

AW: FireDAC erkennt Boolean schreibt jedoch T/F anstelle von J/N
 
Zitat:

Zitat von haentschman (Beitrag 1278527)
Moin...8-)

wäre 0/1 als SmallInt (Firebird) nicht eleganter weil eindeutiger? Nach Boolean casten ist erst Recht nicht problematisch.

Nein kann ich nicht. Ich habe auch weitere Boolean Felder in denen M/W
steht für Männlich/Weiblich In diesem Fall soll im Grid in der Zelle M
oder W stehen und nicht T oder F oder 1 bzw. 0

Gruß Kostas

DeddyH 3. Nov 2014 15:01

AW: FireDAC erkennt Boolean schreibt jedoch T/F anstelle von J/N
 
Mir scheint, Du vermischst Daten und Darstellung. Ich kenne FireDAC nicht, aber dort gibt es doch bestimmt auch so etwas wie DisplayValues, oder?

user0815 3. Nov 2014 15:06

AW: FireDAC erkennt Boolean schreibt jedoch T/F anstelle von J/N
 
Zitat:

wäre 0/1 als SmallInt (Firebird) nicht eleganter weil eindeutiger?
würde ich machen

http://www.firebirdsql.org/refdocs/l...pd15-case.html
und die Daten so ausgeben...

Kostas 3. Nov 2014 15:22

AW: FireDAC erkennt Boolean schreibt jedoch T/F anstelle von J/N
 
Hallo zusammen,

grundsätzlich möchte ich ExtendedMetadata verwenden wegen AutoInc u.s.w.
Ich könnte sicherlich eine Domain anlegen die nicht im Namen BOOL enthält
dann würde das Feld als String erkannt. Jetzt wird es als Boolean erkannt
und ich suche eine Möglichkeit bestimmen zu können wenn ich im DBCheckBox
anhacke der von mir bestimmte Wert in die DB geschrieben wird. Warum soll
ich 0,1 oder T,F schrieben und nicht True=Ja und False=Nein. Firebird kann
es und die IBO-Komponenten können das auch. Da kann ich für jedes Feld
Festlegen was der True Wert und was der False Wert ist.

Verstehe ich das jetzt richtig dass FireDAC mich hier beschneiden auf 0,1 bzw
T,F?

Uwe Raabe 3. Nov 2014 15:50

AW: FireDAC erkennt Boolean schreibt jedoch T/F anstelle von J/N
 
Mangels reproduzierbarem Testfall kann ich auch nur raten, aber eventuell kannst du was mit den MapRules machen.

p80286 3. Nov 2014 16:00

AW: FireDAC erkennt Boolean schreibt jedoch T/F anstelle von J/N
 
Zitat:

Zitat von Kostas (Beitrag 1278525)

Code:
CREATE DOMAIN AS_BOOL AS
CHAR(1) CHARACTER SET ISO8859_1
DEFAULT 'N'
NOT NULL
CHECK (VALUE IN ('J','N'))
COLLATE ISO8859_1;

Boolsche Werte als J/N zu speichern halte ich für grenzwertig
Zitat:

Zitat von DeddyH (Beitrag 1278530)
Mir scheint, Du vermischst Daten und Darstellung.

Ich denke Detlef ist hier auf der richtigen Spur.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr.
Seite 1 von 3  1 23      

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