Overview
TMS RemoteDB is a set of Delphi components that allows you to create 3-tier database applications. It allows your client db application to execute SQL statements through an Http server, instead of directly accessing the database server. It is targeted for performance, stability, and as an easy path to convert client-server applications into 3-tier applications. At the server-side you can choose a wide range of database-access components to connect to database server, including FireDac, dbExpress, dbGO (ADO) and many others. TMS RemoteDB uses TMS Sparkle as the core communication library.
TMS RemoteDB product page: https://www.tmssoftware.com/site/remotedb.asp
TMS Software site: http://www.tmssoftware.com
TMS RemoteDB allows you to create database applications that perform SQL operations on a remote HTTP server, instead of a database server, using a TDataset descendant named TXDataset. This makes it easy to convert existing Delphi client-server applications into 3-tier applications with minimal changes in source code.
The following picture provides an overview of RemoteDB architecture.
The RemoteDB Server is a Delphi application/service that listen to HTTP requests. When clients perform requests, the RemoteDB Server will forward the requests to the actual database server being used, using the specified database-access component. The SQL is performed and the results are returned back to the client. You can choose the components that will perform the SQL statements from a wide-range of options such as FireDac, dbExpress, dbGo (ADO), among others, using component adapters. The SQL database can be any database server supported by the components used, and must be thread-safe (most are).
From the Delphi client application, you can use as many TXDataset components as you need to perform the regular SQL operations. All TXDataset components are linked to a TRemoteDBDatabase component via a Database property. The RemoteDBDatabase component is the one in charge of forwarding the SQL requests to the RemoteDB Server and retrieving back the values. All operations on the client are transparent and just like any TDataset usage: you specify the SQL statement, Open the dataset (or ExecSQL), define the list TField components, Params, connect TDatasource components to it, etc..
TMS RemoteDB also allows you to use the TXDataset to connect directly to the database server in a traditional client-server approach. For that, you could just use TGenericDatabase instead of TRemoteDBDatabase. TXDataset component can be connected to any of the two. This allows you to have a single application, a single dataset component, but switch the database access between a remote, cloud HTTP access to the database, or a regular, local network direct access to the database.
In this section:
Creating RemoteDB Server
How to create a new TMS RemoteDB server and how to configure it.
RemoteDB Client Applications
How to create Delphi client applications that connect to a TMS RemoteDB server.