Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DataSnap REST ClientDataSet zeigt keine Felder an (https://www.delphipraxis.net/181664-datasnap-rest-clientdataset-zeigt-keine-felder.html)

Kostas 1. Sep 2014 21:38

Datenbank: Firebird • Version: 2.5 • Zugriff über: DataSnap REST

DataSnap REST ClientDataSet zeigt keine Felder an
 
Hallo Zusammen,

ich habe aus dem Tread die zweite Frage extrahiert weil sie eigentlich nicht zu dem Thread gehört.
Ich hoffe das ist in Ordnung.
http://www.delphipraxis.net/181645-b...etadapter.html

Das Problem vorab: ein ClientDataSet wird über RESTResponseDataSetAdapter versorgt, doch leider
werden keine Felder angezeigt. Sicherlich nur eine Kleinigkeit die ich nicht kenne.


Ich habe einen DataSnap REST Server erstellt welcher mir über eine Methode TDBXReader Object liefert.

Delphi-Quellcode:
function TServerMethods1.GetGruppen: TDBXReader;
var comm: TDBXCommand;
begin
   EConnection.Open;
   comm := EConnection.DBXConnection.CreateCommand;
   comm.CommandType := TDBXCommandTypes.DbxSQL;
   comm.text := 'SELECT * FROM GRUPPEN';

   if (not comm.IsPrepared) then comm.Prepare;

   result := comm.ExecuteQuery;

end;
Der Client ist ein Mobile Android Projekt. Auf der Form wurden die Komponenten abgelegt:
RESTClient, RESTRequest, RESTResponse, RESTResponseDataSetAdapter und ClientDataSet

In RESTClient habe ich die BaseUrl angegeben und in RESTRequest die resource. Wenn ich per
Rechtsklick auf RESTRequest- ausführen klicke, sehe ich unter RESTResponse.content die Jason Tabelle.

Code:
{"result":[{"table":[["GRUPPENID",6,0,0,0,4,4,0,false,false,0,false,false],["GRUPPENNAME",1,1,0,0,21,20,0,false,false,0,false,false]],"GRUPPENID":[14,10,11,12,16,17,18,21,26,25,27,28,29,30,32,34,37,38],"GRUPPENNAME":["05. Absetzer","03. Sattel","01. Dreiachser","04. Abroller","06. Radlader","07. Tankwagen","08. Bagger","10. Alle LKW","02. Vierachser","09. Kleintransporter","11. Dumper","12. Oldies","16. abgemeldet","14. Ersetzte Ger\u00E4te","13. PlanierRaupe","15. Puchheim","Container","Kipper"]}]}
RESTResponseDataSetAdapterResponse ist verbunden mit RESTResponse und mit ClientDataSet.

Jetzt hätte ich erwartet dass ich die Felder ClientDataSet.FieldDefs abrufen kann. Doch ich bekomme
immer nur ein Feld "result" vom Type TWideStringField auch über Live Binding sehe ich die Felder von
ClientDataSet leider nicht. Somit kann ich die Felder auch nicht an irgend welche Controls binden.

Hat jemand eine Idee?

Gruß Kostas

yuscha 8. Sep 2014 13:30

AW: DataSnap REST ClientDataSet zeigt keine Felder an
 
Hallo ich habe genau das selbe Problem. Hab aber bemerkt das wenn man bei "Root Element" - "result" eingibt bekomm man zwar die Felder zu sehen aber diese enthalten nur array und auch das feld "table" ist dabei.

Hast du inzwischen eine Lösung gefunden?

Viele Grüße

Kostas 8. Sep 2014 15:16

AW: DataSnap REST ClientDataSet zeigt keine Felder an
 
Hallo yuscha,

nein leider noch nicht. Deshalb habe ich auch die DBX Komponenten sein lassen.
Aktuell versuche ich es mit FireDAC. Da gibt es ein TFDJSONDataSets allerdings
gibt es auch damit Probleme. Zur Entwurfszeit scheint es nicht möglich zu sein
die Felder aus dem DataSet abzurufen. Zur Laufzeit funktioniert alles einwandfrei.
Der Nachteil ist, in der TFDMemTable müssen die Felder unter FieldDefs manuell
angelegt werden. Das ist ziemlich Zeitraubend.

Gruß Kostas


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz