Dies ist mit Delphi/C++Builder/RAD Studio 11.x nicht mehr notwendig, da Datenbank-Endpoints automatisch mit dem Experten erzeugt werden können
https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Creating_a_RAD_Server_Package
Da die Dokumentation zu den neuen RAD Server Möglichkeiten etwas limitiert ist, hier einige Tipps: Ich möchte hier drei Aspekte beleuchten:
- PageSize (TEMSDataSetResource)
- SortingParamPrefix (TEMSDataSetResource)
- ValueFields (TEMSDataSetResource)
Es gibt eine neue Komponente, die es ermöglicht, schnell einen RAD Server/eine RAD Server Ressource zu erstellen, die den Datenbankinhalt als JSON zurückliefert: TEMSDataSetResource
Jetzt habe ich mich gefragt, wie man das nutzt….. ohne Doku aber möglich: Ich habe in den Quelltext geschaut 🙂
Einfaches Beispiel (setzt voraus, daß der RAD Server Development Server lauffähig ist (InterBase konfiguriert))
- Datei | Neu | Weitere
- Delphi Projekte -> RAD Server -> RAD Server-Package
- „Package mit Ressource erstellen“
- Ressourcenname „Irgendwas“ / Dateityp „Datenmodul“
- ALLE Endpunkte löschen
- Fertig stellen
Das bringt ein normales Datenmodul für den RAD Server auf den Schirm
Hier platziert man nun drei Komponenten:
- TEMSDataSetResource und die (beiden) Datenbankzugriffskomponenten (hier aus eines InterBase Datenbank):
Der EMDDataSetRessource weisst man nun das DataSet zu und aktiviert die „Action“ „List“ unter „AllowedActions“:
Und fügt die passende RessourceSuffix im Quelltext ein:
1 2 3 4 5 6 7 8 9 10 |
type [ResourceName('Irgendwas')] TIrgendwasResource1 = class(TDataModule) [ResourceSuffix('./')] EMSDataSetResource1: TEMSDataSetResource; EmployeeConnection: TFDConnection; EmployeeTable: TFDQuery; published end; |
Neu hinzugekommen ist das (direkt über der TEMSDataSetResource)
[ResourceSuffix(‚./‘)]
Das war’s auch schon 🙂
Was hat man nun? Wir haben eine RAD Server Ressource erstellt, die auf der „Action“ „List“ die Daten der Resource zurück liefert:
Man kann diese aber (und das ist auch NEU) beeinflussen:
- Die Eigenschaft „ValueFields“ in der TEMSDataSetResource bestimmt, welche Felder zurückgegeben werden (per Editor konfigurierbar). Ist die Property leer, werden alle Felder zurückgegeben.
- Die Eigenschaft „PageSize“ gibt die Möglichkeit, die zurückgegebene Datenmenge auf <n> Datensätze zu beschränken (Standard: 50)
Dies kann man dann im URL-Aufruf umsetzen:Der URL-Teil „page“ ist konfigurierbar in der TEMSDataSetResource Komponente (PageParamName)
- Man kann die Daten sortieren (innerhalb der Page):
1http://localhost:8080/irgendwas?sfEMP_NO=D1http://localhost:8080/irgendwas?sfEMP_NO=D
Dafür steht das „sf“ für das „SortingParamPrefix“ (konfigurierbar in der TEMSDataSetResource Komponente / „SortingParamPrefix„)
Dann kommt der Feldname (muss in den ValueFields enthalten sein) und dann, nach dem Gleichheitszeichen entweder „A“ (ascending) oder „D“ (descending)
Beides lässt sich auch kombinieren:
1 |
localhost:8080/irgendwas?page=1&sfEMP_NO=D |
Mehr dazu auch morgen in meinem Webinar:
http://forms.embarcadero.com/de-webinar-rio-launch
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition