ich stolpere jetzt schon mehrmals darüber, dass die Params-Eigenschaft in Delphi irgendwie tricky arbeitet.
Simples Beispiel:
Code: Alles auswählen
select (case
when :i0=2 then iif(octet_length(trim(Feld2))>0, Feld2, Feld22)
when :i0=3 then iif(octet_length(trim(Feld3))>0, Feld3, Feld23)
else iif(octet_length(trim(Feld1))>0, Feld1, Feld11) end)
from Tabl1 where myNr=:i1
Fehlanzeige.
Sehe ich hier den Wald vor lauter Bäumen nicht? Im IBExpert ist das absolut kein Problem, es werden i0 und i1 abgefragt und sauber verarbeitet.
Ich arbeite mit den Komps von Devart.
Hat evtl. jemand eine Idee, wie ich hier weiter komme?
Ach so: besetze ich die Felder mit ParamByName, funzt es. Ist in meiner abgeleiteten komplexen, universellen SQL-Klasse aber nicht vorgesehen. (Params werden als OpenArrays übergeben und per Index gefüllt, nicht per Name).