AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken FireDAC erkennt Boolean schreibt jedoch T/F anstelle von J/N
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Kostas · begonnen am 3. Nov 2014 · letzter Beitrag vom 5. Nov 2014
Antwort Antwort
Seite 2 von 3     12 3      
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#11

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

  Alt 3. Nov 2014, 19:47
Wie kann ich das bitte unterbinden ohne dass ich ExtendedMetadata ausschalten muss?


wo schaltet man ExtendedMetadata ein/aus?

Wo zeigst Du den Boolean denn an (Checkbox,..)?
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

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

  Alt 3. Nov 2014, 19:59
Hallo zusammen,

wenn FireDAC nur Integer als Boolean umsetzten würde, würde ich das Verhalten
zähneknirschend akzeptieren. Es überrascht mich doch sehr dass FireDAC für
Boolean ein T/F in das Feld schreiben kann, jedoch keine Einstellung zur
Verfügung stellt aus T/F ein J/N oder was auch immer einzustellen.
Wie gesagt, IBO hat das vorgesehen wie so vieles.

@Lemmi,
Ich habe eine DB aus einem vorhandene Projekt. Die DB habe ich kopiert und
versuche Form für Form umzustellen von Delphi5 und IBO auf DelphiXE7 und FireDAC. Es kommt eine Menge Frust hoch weil die einfachsten Dinge nicht gehen. Aktuell geht es um eine einfache Form auf dieser das Grid von DevExpress platziert ist. In der Connection.Parameter gibt es eine Einstellung
um ExtendedMetadata zu aktivieren. Wenn das aktiv ist, wir die Domain AS_Bool
als Boolean interpretiert. Das Grid zeigt danach auch automatisch eine
Checkbox an. Wenn ich die Checkbox einchecke wird versucht in das Feld
ein T zu schreiben.


Gruß Kostas
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#13

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

  Alt 3. Nov 2014, 22:27
Hallo Kostas,

ich kenne FireDAC (AnyDAC) viel zu wenig, um dir hier konkret weiterhelfen zu können, aber bei einem Austausch einer so zentralen Komponente wie die Datenzugriffsschicht, muss man doch auf einiges gefasst sein. Bei IBO sind es halt oftmals Feinheiten, die den Unterschied zu anderen Komponenten ausmachen. Mit der Boolean-Sache hast bereits eine gefunden, sofern FireDAC hier wirklich nichts anbietet, die in der Umstellung einer Legacy Anwendung sehr unangenehm werden kann und wird. Will hier jetzt nicht auf deine deutschsprachige Speicherung via J/N näher eingehen. D.h. sollte FireDAC hier nichts benutzerdefiniertes anbieten, dann wirst du vermutlich den Constraint abändern und im selben Atemzug alle Feldinhalte entsprechend updaten müssen.

Die Sache mit dem Boolean ist eine Feinheit. Etwas gröber wirds dann wenn man sich in IBO auf Sachen wie automatisches OIT/OAT Advancing verlassen hat. Von Features wie DML Caching zur Benachrichtigung bei Datenänderungen uvw. rede ich noch gar nicht. Weiss nicht ob FireDAC getrennte Transaktionen für SELECT und DELETE/INSERT/UPDATE unterstützt. So kann man z.b. für Selects eine Transaktion mit READ COMMITTED + READONLY verwenden, die auch bei langlaufenden Transaktionen keinen Performanceschaden anrichtet. Vermutlich wird FireDAC diese Trennung auch haben. In IBO steckt halt sehr, sehr viele Mannjahre an InterBase/Firebird-spezifischem KnowHow drinnen.

Will hier nicht notwendigerweise eine Lanze für IBO brechen, da ich z.b. auch IBDAC im Einsatz habe, aber ich befürchte dein Frustpotential wird noch (lange) nicht ausgeschöpft sein.

LG
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#14

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

  Alt 3. Nov 2014, 23:25
Hallo Thomas,

ich versuche herauszufinden ob ich die nativen IBO Komponenten ersetzen kann. Ich habe bis jetzt nur die nativen Komponenten eingesetzt. Ein paar Sachen gibt es da schon die mir nicht gefallen. Die Version 5 ist in ein paar Punkten problematisch. So z.b. wenn in ein TIB_Grid ein TIB_ComboBox integriert wird, wird das Control nicht wie erwarten innerhalb der Zelle gezeichnet sondern links oben im Bildschirmrand. Jason kann das nicht nachvollziehen.
Ein fehlverhalten das seit etwa 3-4 Monaten da ist. Jason hat von mit eine Test-Anwendung bekommen und auch ein Screen Capture Video. Doch bis Heute keine Reaktion. Die aktuelle Version kann ich nicht testen da ich die Lizenz habe ablaufen lassen. Was auch ziemlich nervt ist, wenn im TIB_Grid irgend welche IB_Controls platziert werden und man tippt die Zelle an, bekommt das Control nicht gleich den Focus, sondern erst nach dem dritten Click. Übrigens, TMS hat das gleiche Problem. DevExpress hat das Problem nicht!

Das Hauptproblem ist natürlich das die nativen Komponenten um so viel Produktiver sind als die DataSet kompatiblen IBO Komponenten, leider mit dem Nachteil dass man keine Drittanbieterkomponenten verwenden kann eben weil sie nicht DataSet kompatibel sind.

Meine Datenbank ist und bleibt Firebird. Eigentlich müsste ich bei IBO bleiben wegen der Produktivität. Doch die nativen Controls werden auch nicht aktualisiert habe ich das Gefühl. Somit bleibt die Optik
ziemlich hinten. Jason hätte eine DataSource entwickeln sollen das beides unterstützt native und DataSet.

Alleine schon der SQL Editor ist so produktiv, der neben den Editor auch eine Liste der Tabellen liefert und darunter die Liste der Feldnamen der aktiven Tabelle. Per doppenklick ist die Tabelle im Join und per Doppelklick ist das Feld im Select. Wenn man permanent damit zu tun hat, ist das maximal produktiv. In DBX, FireDAC und UniDAC fehlt das. Ein nackter Editor. Vermutlich bin ich der einzige Depp der sich die hunderte Tabelennamen und dessen Felder nicht merken kann. Jedes mal raus aus der IDE rein in IBExpert select erstellen und wieder zurück in der IDE um das SQL zu platzieren. Das kann es doch nicht sein.

Mal sehen was sonst noch ans Tageslicht kommt wenn ich weiter teste.

Sorry, für meine Ausdrucksweise...

Schöne Grüße,
Kostas

Geändert von Kostas ( 3. Nov 2014 um 23:27 Uhr)
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#15

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

  Alt 4. Nov 2014, 00:10

@Lemmi,
... Aktuell geht es um eine einfache Form auf dieser das Grid von DevExpress platziert ist.

DevExpress kenne ich nicht, aber viele andere hier. Bei den "normalen" DBCheckboxen kannst Du die Werte direkt bei der Komponente einstellen. Schau mal nach ob bei den DevExpress DBCheckboxen vergleichbare Einstellungen da sind, dann schau wie du das im Grid einstellen kannst...

Sorry, IBO sind da halt sehr speziell.
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#16

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

  Alt 4. Nov 2014, 06:41
Morgen Lemmy,

DevExpress hat die Einstellungen doch die werden ignoriert.
Ich sehe keine andere Möglichkeit als das Feld als Integer umzubauen. Es ist auch nicht wirklich
ein Problem, doch ärgerlich ist es schon.

Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von TRomano
TRomano

Registriert seit: 24. Nov 2004
Ort: Düsseldorf
192 Beiträge
 
Delphi 11 Alexandria
 
#17

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

  Alt 4. Nov 2014, 07:40
Hallo Kostas,

ich bin mal kurz über diesen Thread geflogen und ich glaube, dass Du vielleicht ein kleines Problem hast: mit der vorgeschlagenen Domain Boolean als Integer-Wert kommt man sehr wohl klar. Es gibt halt nur die Entscheidung TRUE/FALSE. Dein Beispiel mit dem geschlecht ist etwas ganz anderes, nämlich ein Lookup-Field mit den Items "Mann,Frau,Transsexueller ..." usw. Das passt so inhaltlich gar nicht zu einem Boolean-Field. Entweder ist die Person ein Mann (wieder J/N) oder Frau (wieder J/N) oder was auch immer. Hier hättest Du allerdings einige boolsche Felder. Du möchtest aber eine Auswahl haben (M/F) !
Die Darstellung deiner boolschen Werte kann ich in IBO nicht bewerten, weil ich es schon seit vielen Jahren nicht mehr einsetze und mein Gedächtnis auch nicht das Beste ist.

Gruß Thomas
Thomas Forget
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#18

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

  Alt 4. Nov 2014, 08:01
Hallo Thomas,

das ist mit völlig klar. Natürlich könnte ich Interger nehmen als Bool.
Es ist für mich nicht verständlich das T/F gehen soll und J/N nicht. Wenn nur 0/1 gehen würde,
würde ich die Frage nicht stellen und mich damit abfinden. FB unterstützt es nun mal und ich habe
für Boolean sehr gerne J/N verwendet oder auch andere Kombinationen wie M/W. Das ich das mit einer
LookUp machen kann ist ebenfalls klar und habe ich auch rege im Einsatz. IBO hat das eben auch
unterstützt und ich sehe dass FireDAC es nicht unterstützt.

OK, das Thema können wir somit abschließen.

Gruß Kostas

P.S.
Wenn du DBX, FireDAC oder auch AnyDAC verwenden solltest, würde ich dich fragen wollen wie du den mit
dem SQL-Editor auskommst der nicht die Möglichkeit bietet die vorhandenen Tabellen und dessen Felder schnell innerhalb des Editor zu haben. Geht dir das nicht ab? Hast du alle Tabellennamen und Felder
im Kopf?
  Mit Zitat antworten Zitat
Benutzerbild von TRomano
TRomano

Registriert seit: 24. Nov 2004
Ort: Düsseldorf
192 Beiträge
 
Delphi 11 Alexandria
 
#19

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

  Alt 4. Nov 2014, 08:08
Hallo Kostas,

ich arbeite mit UniDAC von DevArt (Gewohnheit) und bin damit zufrieden. Allerdings veranstalte ich da keine großen Sachen mit dem SQL-Editor, aber zu mindestens generiert er mir zuverlässig die INSERT/UPDATE/DELETE/REFRESH-Statements in der TUniQuery. Er zeigt mir alle Fields an, ich kann den PK auswählen und, und, und ... Was will man mehr ?
FireDAC brauche ich derzeit nicht und da ich (nur) die Prof.-Edition von XE6 benutze müsste ich diese auch noch zusätzlich erwerben. Und das alle (ca.) 6 Monate ... mache ich nicht mit.

Gruß Thomas
Thomas Forget

Geändert von TRomano ( 4. Nov 2014 um 08:09 Uhr) Grund: Orthografie ...
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#20

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

  Alt 4. Nov 2014, 08:24
@Kostas:

Bevor du deine Char-Boolean in Integer umwandelst - bitte halt einen Moment inne!

Aktuell: Du willst J/N, Firedac speichert aber T/F
Neu: Du willst 0/1, Firedac speichert aber T/F

Fällt dir was auf?

der "einfachste" Weg: Änder dein Boolean in ein T/F. Bisher habe ich auch keine Möglichkeit (auch nicht über die Felddefinition) gefunden hier Firedac von T/F abzubringen (wobei ich kein FireDAC Fachmann bin und auch nie werde).

Der (IMHO) sinnvolle Weg: Geh weg vom Datenbankkontext! Sprich verwende keine Datensensitiven Komponenten mehr, sondern bau dir ne Zwischenschicht ein oder verwende ein vorhandenes ORM (DORM oder ien KaufORM) - dann hast Du deutlich mehr Möglichkeiten! Vor allem wenn DU eh von IBO mit den eigenen DBKomponenten weg gehst, dann ist das die Möglichkeit, das sinnvoll umzubauen. AUch wenn es ein deutlich größerer Aufwand ist - glaub mir der wird sich lohnen!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:32 Uhr.
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