Delphi and RemObjects

A brief introduction to RemObjects architecture for those used to traditional TClientDataset design:

The approach taken by RemObjects SDK and Data Abstract does NOT use TClientDatasets, nor persistent fields but instead uses strongly typed data tables – see here for the RemObjects approach.

All RemObjects products are sold on a subscription basis thus as at 2011, Data Abstract for Delphi sells for $US899 then annual renewal of $US599.

For example, you would need create new server and client projects, and presumably delete any persistent fields then replace TClientdatasets with TDACDSDataTable and link these to a TDABusinessProcessor instead of a TDatasetProvider, and then use the interfaced code which remObjects SDK creates. The TDABusinessProcessor links to BusinessRules class, a ReferencedDataset, and also to TDASchema which allows mapping of data via TDADataDictionary for various database servers if needed, and links to a TDAConnectionManager which maintains a list of connections and pooled connections to database servers.

See Getting Started.

A RemObjects Clientdatamodule will thus contain:

  • TDACDSDataTable components for each dataset you wish the client GUI to access
    • method to applyUpdates is ApplyUpdate(true) not ApplyUpdates(-1)
    • no persistent fields and thus no provider flags
    • no Datasetprovider linkage but instead a Adapter property whick links it to a TDABinAdapter
    • new DataRequestCall and DataUpdateCall – points to the respective server methods
    • new master and detail options
    • new BusinessRulesID
    • new LocalConnection
    • new LocalSchema
    • new LogicalName
    • new DoSort method
    • new intDATypetoVCLType returns TFieldType
    • a client autoinc field will be assigned an incrementing negative integer which the Server Business Processor will handle and can be altered by setting the OnBeforeProcessData event of the TDABusinessProcessor to fetch a real autoinc key value and replace the client generated one – see here.
  • TDADatasource components if need to create Master-Detail linkages
  • TROChannel
  • TROMessage
  • TRORemoteService
  • TDABinAdapter

The Server datamodule will contain:

  • TDABinAdapter
  • TDASchema
  • TDADataDictionary
  • TDABusinessProcessors to correspond with each TDADatasource components (in the DBX Delphi architecture, this would just be a TSQLQuery)
    • BP OnAfterProcess event handlers not only allow one to keep items, but can also modify the delta and thus update the client data without having to refresh the whole data, and send a message to the client via aChange.message property. The aChange.Status can be set to csResolved to indicate to the client the updates were applied successfully.
No comments yet.

You must be logged in to post a comment.

No trackbacks yet.