Um ehrlich zu sein, verstehe ich nicht ganz, was du da machst.
Delphi-Quellcode:
ZQuery.Open;
ZQueryTmp.Open;
while not ZQueryTmp.Eof
do // Hier läufst du durch deine Tabelle, die in zquerytmp gewählt wurde.
begin
if ZQuery.Locate('
No', ZQueryTmp.FieldValues['
ID'] , [])
then // Wenn du in ZQuery was findest, machst du etwas:
begin
// hier änderst du nur die SQL-Anweisung in ZQuery
ZQuery.SQL.Add('
Update tbl_MyData set No= '+ ZQueryTmp.fieldByName('
ID').AsString)+'
where No = '+
ZQueryTmp.fieldByName('
ID').AsString);
// und machst nichts damit.
end;
ZQueryTmp.Next;
// Ab zum nächsten Datensatz
end;
Normalerweise läuft die Schleife durch und es wird nichts in der Tabelle tbl_MyData gemacht.
Ich habe das Gefühl, du unterschlägst einen Teil des Sources. Ich habe den ZEOS-Komponenten zwar nicht gearbeitet, aber bei allen anderen
Query-Komponente, die ich kenne, führt ein Verändern der
SQL-Anweisung NICHT zum close.
Erst ein :
Open
ExecSQL (Mag sein, dass es bei ZEOS anders heißt)
Active := True
führt implizit zu einem close.