Ein Enum ist ein Aufzählung und nicht Boolean. Das hat sich seit 2014 nicht geändert
(tinyint(1)). Der Bit Datentyp kommt noch hin.
Und wie spricht man den in Delphi an? Mit AsInteger soweit ich weiß ^^ Da kann ich auch gleich TINYINT nehmen, habe fast alle Vorteile von ENUM (außer der Bereichsgrenzen) abzüglich aller Nachteile von ENUM
Den Booleantyp muss die Datenbank können und die Interpretation von Devart ist verständlich, aber auch Devart hat das nicht ganz so freiwillig eingebaut (Interbase, Firebird haben ähnliche Ansinnen). Möglw. war es FIBPlus die damit begonnen haben oder IBOBjects im Umfeld von Interbase.
völlig richtig!
IMHO fehlt Data.DB.TFieldType ein Datentyp für ENUM, quasi ein undefinierter Zustand. Das kann man dann weder ZEOS noch Devart wirklich vorwerfen dass sie gezwungen sind, irgendwelche Quasi-Standards zu übernehmen.
Wahr oder Falsch sind was anders gelagert als die C Interpretation. Es gibt allein ein mathematischen Beweis, dass beide Varianten auf das selbe rauslaufen und damit Deckungsgleich sind. In C ist nur 'false' mit 0 definiert und not false ist true.
Womit es eigentlich richtig wäre, wenn wie bei mir geschehen AsString immer zu "Wahr" auflöst, selbst wenn das Feld als ENUM('N','Y') definiert und mit "N" belegt ist. Devart hat eben genau das später konfigurierbar gemacht, weil die Kaffeesatzleserei in Quasistandards zu nichts führte