Zitat:
Das
ADO eine eigene Syntax hat, die vom Standard abweicht
Nicht
SQL Syntax...
Delphi-Quellcode:
Qry.Parameters.ParamByName('Wert').Value
// statt
Qry.ParamByName('Wert').AsString
...imho geht bei
ADO nur ".Value"
Die Delphi-Syntax bei
ADO mag anders sein als bei Zeos,
BDE, UniDac, FireDac,
ADO .... Aber das als Argument für "Sollte man nicht nehmen", halte ich für gewagt. Mir ist nicht bekannt, dass man ohne Änderungen am Quelltext Datenbankschnittstellen untereinander austauschen kann (egal welche gegen welche).
Anpassungen braucht man immer, das könnte man also bei alten Programmen, in denen man z. B. die
BDE durch "beliebige Datenbankschnittstelle" ersetzen möchte, bei jeder anderen Komponente sagen. Sie weichen alle irgendwie ab und haben (in Teilbereichen) eine andere Syntax.
Und dass
ADO nur .Value kennt, ist einfach nur falsch.
Bei mir kennen die Komponenten zumindest
Delphi-Quellcode:
ADOQuery1.FieldByName('').AsBCD;
ADOQuery1.FieldByName('').AsBoolean;
ADOQuery1.FieldByName('').AsCurrency;
ADOQuery1.FieldByName('').AsDateTime;
ADOQuery1.FieldByName('').AsSQLTimeStamp;
ADOQuery1.FieldByName('').AsFloat;
ADOQuery1.FieldByName('').AsInteger;
ADOQuery1.FieldByName('').AsString;
ADOQuery1.FieldByName('').AsVariant;
ADOQuery1.FieldByName('').Text;
ADOQuery1.FieldByName('').OldValue;
ADOQuery1.FieldByName('').NewValue;
ADOQuery1.FieldByName('').Value;
(Die hab' ich auch schon (soweit ich mich erinnere) in Delphi 4 genutzt.
Und da wir hier von Delphi 5 reden, liegt (vermutlich) mein olles Delphi 7 näher dran, als eine aktuelle Delphiversion.