Data Abstract™ Samples for Delphi

Please keep the following things in mind when working with the samples:

Getting Started

Most of the samples provide a project group containing server and client projects. The standard procedure for testing these is as follows:

Having tested the sample, next examine the database schema and the services provided. Do this by examining the Schema Modeler and Service Builder tools provided:

Note: the Schema Modeler item available via the IDE's main menu (RemObjects | Schema Modeler) will open a fresh instance, not the one already referenced by the other components.

Sample Categories

Category

Samples

Introduction First Sample
Login Sample
Calculated Fields
Custom User Logon
MegaDemo
Local Schema
Quick Open
Intermediate Briefcase
Business Processor
BusinessRulesScripts
Data Streamers
Fetch
Memory Data
Multi Level Detail
SQL Access
Stored Procedures
Strongly Typed
Architecture Connection By User
Local Schema
Service Methods
Strongly Typed
Advanced Connection By User
Connection Pooling
Dynamic SQL
Regular Expressions
Service Methods
XSLT
Third Party QuantumGrid 4
Report Builder

Sample Descriptions

Name Category Description
Briefcase Intermediate This example shows how to create a briefcase model using a Data Abstract Client.
Business Processor Intermediate This is a good example to show the advantages of a multi-tier architecture: systems can be updated via a server re-deploy without the need to update any client. Also, the sample shows advanced handling on the client of any errors returned from the server.
BusinessRulesScripts Intermediate

This example demonstrates how client side scripts can be modified on the server and then downloaded to the client via a simple call.
When you compile and launch the server, it displays a memo containing various client side rules executed within event handlers such as BeforePost.

Calculated Fields Introduction This example shows how to handle calculated fields on the server side and client side.
Connection By User Architecture
Advanced
Shows various methods how a standard application (i.e. not a RemObjects server or client) can obtain a database connection at runtime.
The application uses four Data Abstract components:  TDAADODriver, TDADriverManager, TDAConnectionManager and TROInMemorySessionManager.
Connection Pooling Advanced Shows how connections can be managed via a pool (ADO/Northwind & IBX/Employee connections).
Custom User Logon Introduction

A very simple example showing two methods of opening a connection at runtime:

  • creates and opens the connection in a single call passing the UserID/Password values supplied.
  • creates the connection and opens it afterwards.
Data Streamers Intermediate

This example shows how a dataset can be written to a stream and read from it using the TDABinDataStreamer class.
When you compile and launch this example it displays two grids, the sources for which are datasets dynamically read using TStream.

Dynamic SQL Advanced

This demo shows how to retrieve schema and/or data via SQL generated at runtime.
When you compile and run the server, you will see it contains a memo displaying "SQL details generated for Update will be displayed here". The demo does not actually attempt to update server data but merely displays the fields that would be updated by processing the delta.

Fetch Intermediate This demo shows how to fetch paged orders and also master/detail via single server call.
First Sample Introduction This sample illustrates the basic functionality of Data Abstract.
The application, which shows how to receive data from a remote database, was created using the Data Abstract 4.0 Combo Server wizard.
Local Schema Introduction
Architecture
A simple demo showing the use of several Data Abstract components to select/update a range of Customer records.
Login Sample Introduction

This example shows how to provide a simple Login.
The login data is held in Northwind's Employees table, with the FirstName and LastName fields used for UserName and Password respectively.

MegaDemo Introduction The sample shows:
  • How we can work with several connections to different databases (Northwind - MS SQL and Employee - Firebird).
  • How we can implement security and access rights in our application.
  • Master-detail relations between tables is implemented via a service that provides a list of orders by user id.
Memory Data Intermediate

This example shows how to create and populate a virtual dataset dynamically.
The client displays two grids:

  • Top Grid: this displays the primary keys of one or more datasets from Northwind. 
  • Bottom Grid: this displays the names and sizes of files contained in the specified disk folder.
Multi Level Detail Intermediate This sample shows how to implement master/detail/detail updates as simply as possible.
QuantumGrid 4 Third Party This example demonstrates how to use the QuantumGrid4 (or QuantumGrid5) product from Developer Express (contact www.devexpress.com. for licensing information if you do not already have the product).
Quick Open Introduction This example shows how to load TDACDSDataTable data using the TDABinDataStreamer.
Regular Expressions Advanced This sample illustrates the support provided for regular expressions.
Report Builder Third Party Requires ReportBuilder 7 from Digital Metaphors.
This example shows how to create the report on the server, stream it to the client and then display to the client.
Service Methods Architecture
Advanced
 This example illustrates the methods of the IDataAbstractService base service. It shows the options available to change the server's operations and also shows the order in which server methods are invoked.
SQL Access Intermediate This example treats two different SQL queries as if they are the same one. One takes data from the SHIPPERS table and the other from the CUSTOMERS table.
The field mappings used when building the where clause isolate the developer from the SQL details and so allow the building of fairly complex where clauses without the need to do string concatenations in code.
This sample also illustrates the use of various macro processors (TMSSQLMacroProcessor, TIBMacroProcessor, TOracleMacroProcessor, TDBISAMMacroProcessor).
Stored Procedures Intermediate  This example shows how to use the IDAConnection's GetStoredProcedureNames method to retrieve a list of stored procedures for the connection.
It also shows how to use IDAConnection's NewCommand to access the IDASQLCommand interface
Strongly Typed Architecture
Intermediate
 This example shows usage of business rules. It enforces additional rules that might change over time. This is a good example to show the advantages of a multi-tier architecture: systems can be updated via a server re-deploy without the need to update any client.
XSLT Advanced This example shows how to import dataset data into an .xml file by using the TDAXmlDataStreamer. Exporting dataset changes to an .xml file is also shown.

Support

If you encounter any problems or have questions regarding the Samples, please feel free to ask on our newsgroup at news://news.remobjects.com/remobjects.public.dataabstract.delphi.

Thank you very much,
Your RemObjects Team
http://www.remobjects.com