Hallo Robby,
du hast zwei identisch aufgebaute dBase-Tabellen, die du über die Table-Komponenten Table3 und Table2 ansprichst. In dem von dir gezeigten Code fehlt eventuell das Positionieren auf den ersten Satz von Table3, bevor die Schleife abgearbeitet wird.
Du schreibst von einem Vergleich, aber dein Code enthält keinen Vergleich. Wenn ich deine Frage richtig verstehe, dann möchtest du anhand eines Schlüssels prüfen, ob jeder Datensatz aus Table3 auch in Table2 vorkommt. Existiert der Datensatz nicht, dann soll er erstellt werden, andernfalls sollen seine Nicht-Schlüsselfelder die Werte aus der Table3 annehmen. Habe ich das richtig verstanden?
Den Code könnte ich mir dann etwa so vorstellen:
Delphi-Quellcode:
procedure CopyValues(Source, Target: TDataSet);
var
i: integer;
begin
for i := 0 to Pred(Source.Fields.Count) do
Target.Fields[i].Value := Source.Fields[i].Value;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// ...
with Table3 do
begin
First;
while not Eof do
begin
if Table2.Locate('YourKeyName', 'YourKeyValue', [])
then Table2.Edit
else Table2.Append;
CopyValues(Table3, Table2);
Table2.Post;
Next;
end;
end;
end;
Grüße vom marabu