Einzelnen Beitrag anzeigen

TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.891 Beiträge
 
Delphi 12 Athens
 
#10

AW: Firedac als JSON ohne Feldbezeichner exportieren

  Alt 24. Apr 2023, 11:06
Delphi-Quellcode:
{...}
  while not qrPersonen.eof do
  begin
    LPersonenRec := TJSONArray.Create;
    LPersonenRec.add(qrPersonen.FieldByName('PERSONID').AsLargeInt);
    LPersonenRec.add(qrPersonen.FieldByName('NAMEN').AsString);
    LPersonenRec.add(qrPersonen.FieldByName('TITEL').AsString);
    LPersonenRec.add(qrPersonen.FieldByName('VORNAME').AsString);
    LPersonenRec.add(qrPersonen.FieldByName('GEBURTSDATUM').AsString);
    LPersonenRec.add(qrPersonen.FieldByName('PERSONALNR').AsString);
    LPersonenRec.add(qrPersonen.FieldByName('EINTRITTJAHR').AsInteger);
    LPersonenRec.add(qrPersonen.FieldByName('FACHNR').AsLargeInt);
    LPersonenRec.add(qrPersonen.FieldByName('FACH').AsString);

    LPersonen.Add(LPersonenRec);

    qrPersonen.next;
  end;
{...}
Du kannst vermutlich eine Menge Zeit einsparen, wenn Du die Felder nicht für jeden Datensatz sondern einmal vor der Schleife ermittelst:

Delphi-Quellcode:
{...}
  var
    fldPERSONID,
    fldNAMEN,
    fldTITEL,
    fldVORNAME,
    fldGEBURTSDATUM,
    fldPERSONALNR,
    fldEINTRITTJAHR,
    fldFACHNR,
    fldFACH: TField;

{...}

  fldPERSONID := qrPersonen.FieldByName('PERSONID');
  fldNAMEN := qrPersonen.FieldByName('NAMEN');
  fldTITEL := qrPersonen.FieldByName('TITEL');
  fldVORNAME := qrPersonen.FieldByName('VORNAME');
  fldGEBURTSDATUM := qrPersonen.FieldByName('GEBURTSDATUM');
  fldPERSONALNR := qrPersonen.FieldByName('PERSONALNR');
  fldEINTRITTJAHR := qrPersonen.FieldByName('EINTRITTJAHR');
  fldFACHNR := qrPersonen.FieldByName('FACHNR');
  fldFACH :=qrPersonen.FieldByName('FACH');
  while not qrPersonen.eof do
  begin
    LPersonenRec := TJSONArray.Create;
    LPersonenRec.add(fldPERSONID.AsLargeInt);
    LPersonenRec.add(fldNAMEN.AsString);
    LPersonenRec.add(fldTITEL.AsString);
    LPersonenRec.add(fldVORNAME.AsString);
    LPersonenRec.add(fldGEBURTSDATUM.AsString);
    LPersonenRec.add(fldPERSONALNR.AsString);
    LPersonenRec.add(fldEINTRITTJAHR.AsInteger);
    LPersonenRec.add(fldFACHNR.AsLargeInt);
    LPersonenRec.add(fldFACH.AsString);

    LPersonen.Add(LPersonenRec);

    qrPersonen.next;
  end;
{...}
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat