AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Webservice: Daten via TFDJSONDataSet an Webclient übergeben

Webservice: Daten via TFDJSONDataSet an Webclient übergeben

Ein Thema von rdeutsch · begonnen am 16. Mär 2016
Antwort Antwort
rdeutsch

Registriert seit: 24. Mär 2006
42 Beiträge
 
#1

Webservice: Daten via TFDJSONDataSet an Webclient übergeben

  Alt 16. Mär 2016, 15:49
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:
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;
Nun meine Frage:
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

Geändert von rdeutsch (16. Mär 2016 um 16:02 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf