Zitat:
Zitat von
Hansa:
Am besten so :
Delphi-Quellcode:
with D_DataModule.DataSet do
D_DataModule.DataSet.Edit;
while not D_DataModule.DataSet.Eof do begin
D_DataModule.DataSet.FieldByName('FAID').AsInteger;
reg.customer[reg.Ac_ID].ID; ...
end;
D_DataModule.DataSet.Post;
...
D_DataModule.DataSet.Close;
P.S.: das Value würde ich mir abgewöhnen. Habe z.B. jetzt nur geraten, ob es überhaupt um integer geht.
Vergiss es, so läuft es nicht.
Erstmal frage ich mich, ob es überhaupt gehen würde. Schließlich ist das kein einfacher SELECT * sondern mit Funktionen. Zum anderen ÜBERSCHREIBST du die Zeilen einfahc (Edit) statt anzuhängen.
Besser ist:
Delphi-Quellcode:
var
Query: TADOQuery;
...
Query := TADOQuery.Create(
nil);
Query.Connection := ...;
Query.SQL.Text := '
INSERT INTO tabelle (feld1, feld2, ...) VALUES (:feld1, :feld2, ...)';
Query.Parameters.ParamByName('
feld1').Value := ...;
...
Query.Execute;
Query.Free;
Oder alternativ:
Delphi-Quellcode:
var
Query: TADOQuery;
...
Query := TADOQuery.Create(
nil);
Query.Connection := ...;
Query.SQL.Text := '
SELECT * FROM tabelle WHERE 1=0';
Query.Open;
Query.Append;
Query.FieldByName('
feld1').Value := ...;
...
Query.Post;
Query.Close;
Query.Free;
hab das jetzt nicht komplett ausprobiert, kann sein dass hier und da kleine Fehler sind. Z.B. kann es sein, dass TADOQuery dir mit deiner
DB nichts nützt. Bei anderen Datasets heißt es dann nicht Parameters.ParamByName sondern Params.ParamByName. Aber grob stimmt es so jedenfalls.