1. Frage : ist die
DB als Dialect 3 angelegt ?
Die Hauptfrage ist allerdings folgende :
Wer ist zuständig fürs abspeichern ? Dein Programm oder die
DB ? Wo können Fehler auftreten und wann merkt man die ?
Ist es tatsächlich gut, ein
SQL-Statement im Source zu haben, oder eher solche Konstrukte :
Delphi-Quellcode:
PreisSP.ParamByName('ID_KUNDE').AsInteger := StrToInt (idkunde);
PreisSP.ParamByName('ID_ART').AsInteger := StrToInt (idart);
...
PreisSP.ExecProc;
Die dahinter steckende Stored Procedure hat folgende Vorteile : im Source kann ich mich mit ''""'"'"'"" Quoted ??? nicht mehr verzetteln (zumindest mit Dialect 3). Vor allem aber ist es möglich die SP (vor der Verwendung im Programm) in IBExpert zu testen. Und wenn sie dann geht, dann kann man sie verbauen. Auch Dein im Source zusammengesetztes Insert würde ich zuerst mal in IBExpert testen. Wenns sein muß, dann notfalls 1:1 per C+P im Source anpassen. Eine SP anzulegen ist
IMHO aber immer besser bzw. sicherer.
Leider ist so was immer noch sehr beliebt (zumindest hier) : z.B. baut man ein Flugzeug und wenn es abstürzt, dann guckt man mal, warum. Anstatt vorher alle Einzelteile zu überprüfen und das Teil dann erst zusammenzubauen.