Ich verwende derzeit zum Einfügen eines neuen Datensatzes folgende Routine, welche auch einwandfrei funktioniert:
Delphi-Quellcode:
with DatenModul.ZQuery_Buchung
do begin
SQL.Clear;
SQL.Add('
INSERT INTO BUCHUNG (BUNR, ZIMMERNR, DATUM, KUNDENNR, PREIS, ANZPERSONEN) ' +
'
VALUES (:BuNr, :ZimmerNr, :Datum, :KundenNr, :Preis, :AnzPers);');
Params.ParamByName('
ZimmerNr').AsInteger := _ZimmerNr;
Params.ParamByName('
Datum').AsDate := _Datum;
Params.ParamByName('
KundenNr').AsInteger := _KundenNr;
Params.ParamByName('
Preis').AsFloat := _Preis;
Params.ParamByName('
AnzPers').AsInteger := _AnzPers;
end;
try
DatenModul.ZQ_Buchung.ExecSQL;
except
ShowMessage('
Fehler beim Buchen');
end;
Jetzt zu meiner Frage:
Wofür sollte ich besser die Komponente TZUpdateSQL verwenden, bzw. wie verwende ich diese richtig. Ich habe mal versuchsweise eine TZUpdateSQL auf mein DatenModul gezogen und das ZQuery damit verbunden. Danach habe ich die obigen 5 Params-Zeilen in die TZUpdateSQL gelegt. Die
SQL-Anweisung habe ich ebenfalls in die TZUpdateSQL unter InsertSQL verschoben. Danach hat nichts mehr funktioniert.
Was mache ich da falsch bzw. wie macht man das richtig, vor allem wie führe ich ein INSERT durch? Funktioniert dies dann ebenfalls mit DatenModul.ZQ_Buchung.ExecSQL ? Wie weiss der
Query.ExecSQL dann was er machen soll, zumal ja in der ZUpdateSQL sowohl UPDATE, INSERT und MODIFY ausgeführt werden kann? Fragen über Fragen...
Hat sich hier jemand schon mal näher damit beschäftigt?
mfg
Herbert