Search Results for

    Show / Hide Table of Contents

    Design-Time Components

    TMS XData provides several components for design-time usage. The main purpose is to provide a RAD experience, by just dropping components in the form and configuring them, allowing setting up servers with almost no line of code.

    Even though you can use the components at runtime, creating them from code, that would usually be not necessary, as the components are just wrappers for the existing non-component classes, like TXDataServerModule or IDBConnectionPool.

    Since TMS XData is based on TMS Sparkle components, you might want to read about TMS Sparkle design-time component usage, to learn more details about the architecture, like the common features and middleware system usage.

    General usage is:

    1. Drop a dispatcher component in the form (for example, TSparkeHttpSysDispatcher).

    2. Drop a TXDataServer component in the form.

    3. Associated the TXDataServer component to the dispatcher through the Dispatcher property.

    4. Specify the BaseUrl property of the server (for example, http://+:2001/tms/xdata).

    5. Set Active property of dispatcher component to true.

    From now on you can already create server-side business logic using service operations.

    Optionally, if you wan to use TMS Aurelius and want to publish TMS Aurelius CRUD Endpoints, follow the next steps:

    6. Drop a TAureliusConnection in the form and configure it to connect to your database (you might need to drop additional database-access components, like TFDConnection if you want to use FireDac).

    7. Drop a TXDataConnectionPool component and associated it to TAureliusConnection through the Connection property.

    8. Associated the TXDataServer component to the pool through the Pool property.

    Now your XData server is able to publish database data automatically and you can also use the TXDataOperationContext to use Aurelius to retrieve data from database.

    You can also use the TAureliusConnection component to automatically generate Aurelius classes from the database, right-clicking the component and choosing "Generate entities from the database".

    TXDataServer Component

    TXDataServer component wraps the TXDataServerModule module. Basically all properties in the component has a direct relation with the properties of the TXDataServerModule, in case of doubt refer to TXDataServerModule reference to learn more details about each property.

    Properties

    Name Description
    Pool: TXDataConnectionPool Contains a reference to a TXDataConnectionPool component. This will be used as the connection pool for the XData server database operations.
    ModelName: string Specifies the name of the model to be used to create the TXDataServerModule instance.
    DefaultExpandLevel: Integer
    PutMode: TXDataPutMode
    PostMode: TXDataPostMode
    FlushMode: TXDataFlushMode
    ProxyLoadDepth: Integer
    ProxyListLoadDepth: Integer
    SerializeInstanceRef: TInstanceRefSerialization
    SerializeInstanceType: TInstanceTypeSerialization
    UnknownMemberHandling: TUnknownMemberHandling
    All those property values will be used to set the a property with same name in the TXDataServerModule instance when it's created. Refer to TXDataServerModule topic to learn the purpose of each property.
    DefaultEntitySetPermissions: TEntitySetPermissions Specifies the default permissions for all entity sets. By default no permissions are provided, which means entity publish will not be available. This is different behavior than when creating TXDataServerModule directly, since it automatically publishes all entities.
    EntitySetPermissions: TEntitySetPermissionItems A collection where you can specify entity set permissions for an entity set in particular. This will override the default entity set permissions.
    EnableEntityKeyAsSegment: Boolean When True, it's possible to address single entities by using the URL format "/entityset/id" - in addition to the default "/entityset(id)". Default is False.
    SwaggerOptions: TXDataSwaggerOptions
    SwaggerUIOptions: TXDataSwaggerUIOptions
    Provide access to configure Swagger and SwaggerUI behavior. See more information at OpenAPI/Swagger Support.

    Events

    Name Description
    OnModuleCreate: TXDataModuleEvent Fired when the TXDataServerModule instance is created.
    OnGetPoolInterface: TGetPoolInterfaceEvent Fired when the IDBConnectionPool interface is created by the TXDataConnectionPool component.
    OnEntityInserting
    OnEntityModifying
    OnEntityDeleting
    OnEntityGet
    OnEntityList
    OnModuleException
    OnManagerCreate
    These are wrappers around the events described in the server-side events chapter. Please refer to that chapter to know more about the events and how to use them. Arguments (event-handler parameters) are exactly the same.

    TXDataModuleEvent

    TXDataModuleEvent = procedure(Sender: TObject; Module: TXDataServerModule) of object;
    

    Module parameter is the newly created TXDataServerModule instance (OnModuleCreate event).

    TGetPoolInterfaceEvent

    TGetPoolInterfaceEvent = procedure(Sender: TObject; var Pool: IDBConnectionPool) of object;
    

    Pool parameter is the newly created IDBConnectionPool interface (OnGetPoolInterface event). You can override that value by creating your own interface and passing it in the Pool variable.

    TXDataConnectionPool Component

    TXDataConnectionPool component creates IDBConnectionPool instances using a TAureliusConnection to create the IDBConnection interfaces.

    Properties

    Name Description
    Connection: TAureliusConnection Contains a reference to a TAureliusConnection component, used to create IDBConnection interfaces used by the pool.
    Size: Integer The size of the pool to be created.

    Events

    Name Description
    OnPoolInterfaceCreate: TPoolInterfaceEvent Fired when the IDBConnectionPool interface is created by the TXDataConnectionPool component.

    TPoolInterfaceEvent

    TPoolInterfaceEvent = procedure(Sender: TObject; var Pool: IDBConnectionPool) of object;
    

    Pool parameter is the newly created IDBConnectionPool interface (OnPoolInterfaceCreate event). You can override that value by creating your own interface and passing it in the Pool variable.

    In This Article
    Back to top TMS XData v5.21
    © 2002 - 2025 tmssoftware.com