Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
FreePascal / Lazarus
|
AW: Große Datenmengen richtig verarbeiten bzw. Out of Memory
4. Aug 2018, 23:49
Delphi-Quellcode:
var
firstid : integer; // ggf cardinal oder int64
alldone : boolean;
begin
alldone:=false;
firstid:=0; // Annahme die IDs sind alle größer als 0
ZQuery1.Close;
ZQuery1.SQL.Text := 'select id chkid,* from tabelle1 where id >= :minid order by id Limit 100;';
repeat
Zquery.Parameters.ParambyName('minid').asinteger:=firstid;
ZQuery1.Open;
zQuery1.First;
if not zquery1.EOF then
begin
repeat
firstid:=Zquery1.Fieldbyname('chkid').asinteger;
//mach was mit dem Datensatz
Zquery1.next;
until Zquery1.EOF;
end
else
begin
// alle Datensätze sind verarbeitet
alldone:=true;
end;
ZQuery1.close;
inc(firstid);
until alldone;
end;
Die Syntax mußt Du noch prüfen da ich ZEOS nicht so genau kenne.
Aber damit solltest Du das erreichen was Du willst.
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
Geändert von p80286 ( 4. Aug 2018 um 23:52 Uhr)
|