RAD Studio 10.3 Rio – neue RAD Server Möglichkeiten: TEMSDataSetResource mit SortingParamPrefix, PageSize und ValueFields

by Dec 4, 2018

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

http://docwiki.embarcadero.com/RADStudio/Rio/en/Using_RAD_Server_Components#Helper_Components_for_JSON_Processing

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
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:

    http://localhost:8080/irgendwas?page=1

    Der URL-Teil “page” ist konfigurierbar in der TEMSDataSetResource Komponente (PageParamName)

  • Man kann die Daten sortieren (innerhalb der Page):
    http://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:

localhost:8080/irgendwas?page=1&sfEMP_NO=D

Mehr dazu auch morgen in meinem Webinar:

http://forms.embarcadero.com/de-webinar-rio-launch