![]() |
Webservice: Daten via TFDJSONDataSet an Webclient übergeben
Hallo zusammen
Daten aus einer Datenbank sollen als REST/JSON einem Webclient zur Verfügung gestellt werden. Dieser Webclient wird mit AangularJS geschrieben. Nun habe ich mich etwas in die Datasnap/Webservice-Thematik eingearbeitet, bzw. das eine oder andere Tutorial gelesen und die Demoprojekte nachgebaut. Soweit so gut. In einem Demo werden Datenbankabfragen als JSONObject z.B. auf diese Art für den Webclient zur Verfügung gestellt:
Delphi-Quellcode:
procedure TWebModule1.WebModule1GetGeschaefteAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin FDQryGeschaefte.Active := False; FDQryGeschaefte.ParamByName('geschtyp_min').AsInteger := StrToInt(Request.QueryFields.values['min']); FDQryGeschaefte.ParamByName('geschtyp_max').AsInteger := StrToInt(Request.QueryFields.values['max']); // Put results in a JSON object... FDQryGeschaefte.Active := true; if FDQryGeschaefte.Active then begin if FDQryGeschaefte.RecordCount>0 then begin a := TJSONArray.Create; try FDQryGeschaefte.First; while (not FDQryGeschaefte.Eof) do begin o := TJSONObject.Create; o.AddPair('Lfnr',TJSONNumber.Create(FDQryGeschaefte.FieldByName('LFNR').AsInteger )); o.AddPair('BezHGUmgang',FDQryGeschaefte.FieldByName('BEZHGUMGANG').AsString ); a.AddElement(o); FDQryGeschaefte.Next; end; finally Response.ContentType := 'application/json'; Response.Content := a.ToString; a.DisposeOf; end; end; end; end; In einem anderen Tutorial werden andererseits DB-Abfragen aber auch z.B. auf diese Art an einen DataSnap-Client weitergegeben:
Delphi-Quellcode:
Nun meine Frage:
function TServerMethods1.GetGeschaefte(const myGeschTypMin, myGeschTypMax: integer): TFDJSONDataSets;
begin // Clear active so that query will reexecute. FDQryGeschaefte.Active := False; FDQryGeschaefte.ParamByName('geschtyp_min').AsInteger := myGeschTypMin; FDQryGeschaefte.ParamByName('geschtyp_max').AsInteger := myGeschTypMax; // Create dataset list Result := TFDJSONDataSets.Create; TFDJSONDataSetsWriter.ListAdd(Result, 'Geschaefte', FDQryGeschaefte); end; Wie kann man die Daten wie in Variante 2 für einen Webclient (NICHT-Delphiclient) bereitstellen? So wie ich das sehe, ist Variante 2 nur für Datasnap-Clients geeignet oder sehe ich das falsch? Wäre natürlich schön, wenn sich Variante 2 auch für Webclients anwenden liesse. Somit würde das aufwändige Aufbereiten der Daten wegfallen. Vielen Dank für eure Hilfe und Tipps. Robert |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz