Der Vollständigkeitshalber:
Delphi-Quellcode:
AccessQuery.SQL.Text := 'SELECT ArtNr, ArtVKPreis_0, ArtVKPreis_1, ArtVKPreis_2 FROM sArtikel where ArtInaktiv = false and ArtGSShop = true order by ArtNr';
AccessQuery.Open;
AccessQuery.First;
try
Connection.StartTransaction; // Start a transaction
while not AccessQuery.EOF do
begin
MyQuery.SQL.Text :='update oxarticles set oxprice= :ArtVKPreis_0,oxpricea= :ArtVKPreis_1, oxtprice= :ArtVKPreis_2 where oxid = :ArtNr';
MyQuery.ParamByName('ArtNr').Value := Q_sArtikelArtNr.Value;
MyQuery.ParamByName('ArtVKPreis_0').Value := Q_sArtikelArtVkPreis_0.Value;
MyQuery.ParamByName('ArtVKPreis_1').Value := Q_sArtikelArtVkPreis_1.Value;
MyQuery.ParamByName('ArtVKPreis_2').Value := Q_sArtikelArtVkPreis_2.Value;
MyQuery.execsql;
pgb_updateStatus.Position:=AccessQuery.RecNo;
AccessQuery.Next;
end;
Connection.Commit; // Commit the transaction
except Connection.Rollback; // Rollback the transaction in case of an error
raise;
end;
AccessQuery.close;
end;
Die AccessQuery holt also die Daten und wird in der Schlaufe doch nach dem MyQuery.execsql doch mit AccessQuery.Next einen Datensatz weiter gesprungen.
Oder sehe ich das falsch??
LG Harry