Einzelnen Beitrag anzeigen

fisipjm

Registriert seit: 28. Okt 2013
299 Beiträge
 
#15

AW: Rad Server - IIS Installtion will einfach nicht laufen

  Alt 13. Okt 2021, 16:39
Okay Neuer Anlauf, mit dem Code Klappts nun. Noch 2 Bitten.
1.) kann die Funktion so bleiben? (Create des Array ohne Freigabe und zuweisung auf Result + Aufruf des Body.SetValue sollte das doch eigentlich frei geben, oder?)
2.) Das Ursprüngliche Verhalten ist doch ein Bug oder mach ich was falsch? Hab auch gerade nochmal mit Delphi 11 versucht, gleiches Problem.

Gut nun aber der Code mit der Bitte mal drüber zu fliegen ob man dass so lassen kann. Danke!

Delphi-Quellcode:
function DatasetToJSONArray(aFDQuery: TFDQuery): TJSONArray;
var
  lArray: TJSONArray;
begin
  if assigned(aFDQuery) and not aFDQuery.IsEmpty then
  begin
    lArray := TJSONArray.Create;
    try
      aFDQuery.first;
      while not aFDQuery.eof do
      begin
        var
          o: TJSONObject := TJSONObject.Create;
        for var I := 0 to aFDQuery.Fields.Count - 1 do
        begin
          if not varisnull(aFDQuery.Fields.Fields[I].value) then
            o.AddPair(aFDQuery.Fields.Fields[I].FieldName, aFDQuery.Fields.Fields[I].value)
          else
            o.AddPair(aFDQuery.Fields.Fields[I].FieldName, '')
        end;
        lArray.AddElement(o);
        aFDQuery.Next;
      end;
    finally
      Result := lArray;
    end;
  end;
end;

procedure TDataResource1.GetTableItems(const AContext: TEndpointContext; const ARequest: TEndpointRequest;
  const AResponse: TEndpointResponse);
...
AResponse.Body.SetValue(DatasetToJSONArray(lquery),true);
...
end;
  Mit Zitat antworten Zitat