AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

JSONArray in eine DataSet

Ein Thema von Ykcim · begonnen am 7. Apr 2021 · letzter Beitrag vom 8. Apr 2021
Antwort Antwort
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
736 Beiträge
 
Delphi 10.4 Sydney
 
#1

JSONArray in eine DataSet

  Alt 7. Apr 2021, 16:34
Hallo Zusammen,

ich versuche gerade eine Clien-Server App mit dem xData zu generieren.

Ich rufe einen Service auf, der eine Datenbankabfrage ausführt und das Ergebnis als JSONArray zurückliefert. Die Daten kommen auch bei dem Client als JSONArray an. Jetzt möchte ich diese in ein DataSet packen und breche mir dabei die Ohren...

Das sind die Daten, wie sie im JSONArray (JSONArray.ToString) stehen:
'[ {"prop_id":1,"Einstellung":"Abs_name","Wert":"Must erfirmaGmbH","Kommentar":"Name des Absenders"},
{"prop_id":2,"Einstellung":"Abs_Adresse_1","Wert": "Musterstr. 4711","Kommentar":"Strasse des Absenders"},
{"prop_id":3,"Einstellung":"Abs_Adresse_2","Wert": "","Kommentar":"Adress-Zusatz"},
{"prop_id":4,"Einstellung":"Abs_PLZ","Wert":"08150 ","Kommentar":"Postleitzahl Absender"},
{"prop_id":5,"Einstellung":"Abs_Ort","Wert":"Muste rstadt","Kommentar":"Ort des Absenders"},
{"prop_id":6,"Einstellung":"WTime_Druck","Wert":"1 80","Kommentar":"Wartezeit "}]'

Ich wollte es erst mit dieser Zeile machen:
xWDS_Properties.SetJsonData(JSval); Aber dieses Statement erwartet die Daten in Form eines JSValue

Und hier meine Fragen:
1. Wie würdet Ihre die Daten aus einem JSONArray in ein DataSet (xDataWebDataSet - könnte aber auch ein anderes sein)
2. Wie mache ich aus einem JSONArray ein JSValue?

Vielen Dank für die Unterstützung
Patrick
Patrick
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.035 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: JSONArray in eine DataSet

  Alt 7. Apr 2021, 16:40
Kommt drauf an was Du willst.
Permanent in einen Record speichern, als JSON ?
Oder die Daten als TDataSet zur Verfügung stellen ?

Ich nehme mal an Letzteres, dafür würde ich versuchen JSON in einen TFDMemTable zu konvertieren.

https://stackoverflow.com/questions/...to-tfdmemtable
http://delphi.org/2015/03/firedac-in...t-tfdmemtable/

Geändert von Rollo62 ( 7. Apr 2021 um 16:43 Uhr)
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
490 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: JSONArray in eine DataSet

  Alt 7. Apr 2021, 17:43
Das ist eine Webcore-Anwendung, vermute ich mal. Wenn man einen XData-Service als Quelle nimmt, ist das XDataset soweit ich das sehe nicht der richtige Typ. WebClientdataset sollte funktionieren.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
736 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: JSONArray in eine DataSet

  Alt 7. Apr 2021, 21:05
Ich habe es tatsächlich über eine TFDMemTable gelöst. Ich habe mir seitens des Servers die Query in einen TStream gespeichert:
Delphi-Quellcode:
Query.Open;
      if Assigned(AStream) then begin
         Query.SaveToStream(AStream, sfJSON);
      end;
Den habe ich an den Client gegeben und im Client dann in die TFDMemTable geladen:
Delphi-Quellcode:
procedure TDB_Unit.Get_Propteries;
var LClient: TxDataClient;
      LService: IDBService;
      LStream: TMemoryStream;

begin
   LClient := TXDataClient.Create;
   LStream := TMemoryStream.Create;
   Try
      LClient.Uri:= xData_Conect.URL;
      LService:= LClient.Service<IDBService>;
      LStream:=LService.Properties_Select as TMemoryStream;
      LStream.Position:=0;
      MTable_Properties.LoadFromStream(LStream, sfJSON);
   Finally
      LClient.Free;
      LStream.Free;
   end;
end;
Zu Test-Zwecken ein DataSource an die TFDMemTable gehängt und das Ergbenis in einem DBGrid angezeigt. Scheint zu funktionieren.

Jetzt muss ich mal gucken, was ich mit einer TFDMemTable im Gegensatz zu einer DataSet machen kann, denn damit habe ich noch nie gearbeitet.

Vielen Dank für die Unterstützung.

@Neumann Es ist keine Web-App, sondern eine VCL-App

Patrick
Patrick
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.035 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: JSONArray in eine DataSet

  Alt 8. Apr 2021, 08:14
Jetzt muss ich mal gucken, was ich mit einer TFDMemTable im Gegensatz zu einer DataSet machen kann ...
Alles und noch ein bischen mehr
  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 07:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf