Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#28

AW: Große Datenmengen richtig verarbeiten bzw. Out of Memory

  Alt 4. Aug 2018, 22: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 22:52 Uhr)
  Mit Zitat antworten Zitat