Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Verständnissfrage zu IIF Abfrage in SQLite mit Firedac

  Alt 9. Mär 2022, 11:00
Ich kenne mich mit den Interna der verschiedenen Delphi Versionen nicht aus. Bzw ist unklar, wie, welches SQLite hier (manuell ggf) eingebunden wird: in der IDE, EXE?
IIF() scheint jedenfalls innerhalb der SQLite Funktionen relativ neu zu sein. Vielleicht eine Versionsfrage. Ob das diese Auswirkungen hat ist allerdings wiederum fraglich.

Ggf. sind einfach die Besonderheiten von SQLite (Typaffinität) und den "Ausdrucksmöglichkeiten" von IIF() so speziell, dass sie im DBClient nicht perfekt umgesetzt sind. IIF / CASE WHEN kann theoretisch je nach Datenlage unterschiedliche Ergebnistypen produzieren. SQLite selbst ist das dank Typaffinität wahrscheinlich relativ egal, dem DBClient vielleicht weniger. Die Sachlage kann dabei unterschiedlich kompliziert sein, je nach Datentypvermischung, impliziter Konvertierbarkeit und vielleicht auch der Existenz von NULL Werten.

In neuen SQLite Versionen (der letzten Stand Ende Februar 2022) gibt es den Strict Mode, der grundlegend das Verhalten von SQLite und Spaltentypen ändert Richtung "normaler" DB. Klappt vielleicht besser, hat aber vielleicht auch unerwartete Effekte auf den Bestandscode, jenachdem wie sauber der entwickelt wurde.

Wenn es mit CASE WHEN geht, würde ich es erstmal so lassen und vielleicht mal bei den Client Entwicklern fragen.
Gruß, Jo
  Mit Zitat antworten Zitat