Ok, also das ist jetzt einfach so ausm Kopf ...so würd ich das wohl machen... hoffe es funkt auch.
Delphi-Quellcode:
type TSpieltageRecord =
record
field1:
String;
field2:
String;
..
.
end;
var AExistsIDStatistik:
Array of Integer;
AExistsIDSpieltage:
Array of Integer;
SpieltageRecord:TSpieltageRecord
Found:Boolean;
i,i2:Integer;
i := 0;
// ID's der Tabelle Statistik auslesen
Query.SQL.Text := '
SELECT ID FROM Statistik';
Query.Active := True;
SetLength(AExistsIDStatistik,
Query.RecordCount);
Query.First;
While not Query.Eof
do
begin
AExistsIDStatistik[i] :=
Query.FieldByName('
ID').asInteger;
Inc(i);
Query.Next;
end;
Query.Active := False;
// ID's der Tabelle Spieltage auslesen
Query.SQL.Text := '
SELECT ID FROM Spieltage';
Query.Active := True;
SetLength(AExistsIDSpieltage,
Query.RecordCount);
Query.First;
While not Query.Eof
do
begin
AExistsIDSpieltage[i] :=
Query.FieldByName('
ID').asInteger;
Inc(i);
Query.Next;
end;
Query.Active := False;
// Prüfen ob die ID existiert
For i := 0
to Length(AExistsIDSpieltage)-1
do
begin
Found := False;
For i2 := 0
to Length(AExistsIDStatistik)-1
do
If AExistsIDSpieltage[i] = AExistsIDStatistik[i2]
then
Found := True;
If Found
then
begin
// Aufruf der Daten
Query.SQL.Text := '
SELECT * FROM Spieltage WHERE ID='+IntToStr(ID);
Query.Active := True;
SpieltageRecord.field1 :=
Query.FieldByName('
field1').asString;
SpieltageRecord.field2 :=
Query.FieldByName('
field2').asString;
Query.Active := False;
// Update des Satzes
Query.SQL.Text := '
UPDATE Statistik SET field1 = '+QuotedStr(SpieltageRecord.field1)+'
,'+
field2 = '
+QuotedStr(SpieltageRecord.field2)+
' WHERE ID = '
+IntToStr(AExistsIDSpieltage[i]);
Query.ExecSQL;
end;
end;
Wobei das dann schon ein viel gröserer Aufwand ist als einfach das einmalige
SQL-Update Statement abzusetzen, zumal deine Absicht ja auch
einmalig ist.