- Recompilación en Delphi10 de todos los paquetes de RO para generar las DCU's en Lib\D10 - Recompilación en Delphi10 de todos los paquetes de DA para generar las DCU's en Lib\D10 git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@9 b6239004-a887-0f4b-9937-50029ccdca16
537 lines
26 KiB
HTML
537 lines
26 KiB
HTML
<html>
|
|
<head>
|
|
<link rel="stylesheet" type="text/css" href="styles.css">
|
|
</head>
|
|
<body>
|
|
<img src="..\da.png" alt="" align="right">
|
|
|
|
<!-------------------------------------------------------------------------->
|
|
|
|
<h2 class="h1">
|
|
Data Abstract™ Samples for Delphi
|
|
</h2>
|
|
Please keep the following things in mind when working with the samples:
|
|
<ul>
|
|
<li>
|
|
<b>ADO / Northwind Database</b>. Most samples work on the Northwind database
|
|
that comes with Microsoft SQL Server 7.0 and 2003. For simplicity, the
|
|
samples
|
|
assume that MSSQL is running on the local machine and using an empty "sa"
|
|
password*.
|
|
</li>
|
|
<li>
|
|
If your setup differs, ensure that you adjust the samples accordingly before
|
|
trying to run them; locate and double-click the Schema component, select
|
|
the
|
|
ADO connection in Schema Modeler and change the connection string.</li>
|
|
<li>
|
|
*an empty "sa" password is NOT recommended on production systems.</li>
|
|
<li>
|
|
<b>InterBase (or FireBird) / Employee Database</b>. Those samples working with Borland
|
|
InterBase
|
|
will usually work against the EMPLOYEE.GDB database that is provided with
|
|
InterBase.
|
|
They will expect this database in the default location (c:\Program Files\Borland\InterBase\Examples).
|
|
</li>
|
|
<li>
|
|
If your setup differs,ensure that you adjust the samples accordingly before
|
|
trying to run them; locate and double-click the Schema component, select
|
|
the
|
|
IBX or DBX connection in Schema Modeler, and change the connection string.<li>
|
|
<b>SDAC</b>. Some of the sample applications provide the option to use
|
|
an SDAC based connection instead of ADO to talk to MSSQL. Please note that
|
|
to use
|
|
this option, you will need to drop a SDACDriver on the sample's form manually
|
|
and rebuild the sample; you will also need a valid license for SDAC from
|
|
<a href="http://www.crlab.com">Core
|
|
Lab</a> for this. </li>
|
|
|
|
<li>
|
|
<p>
|
|
<b>Report Builder Sample</b>. This sample will require ReportBuilder 7
|
|
from
|
|
<a href="http://www.digital-metaphors.com">Digital Metaphors</a>.
|
|
</p>
|
|
</li>
|
|
</ul>
|
|
<h2 class="h2">
|
|
<span style="font-size: 14pt">
|
|
Getting Started</span></h2>
|
|
<p>
|
|
<span style="font-size: 10pt">Most of the samples provide a project group containing
|
|
server and client projects. The standard procedure for testing these is as follows:
|
|
</span>
|
|
</p>
|
|
<ul>
|
|
<li>Build or compile both projects. </li>
|
|
<li>Ensure that the server is the current project. <strong>Note:</strong> if there is
|
|
only one RemObjects SDK server contained within the project group, this step is
|
|
not needed because the next step will still work even if the lient is the current
|
|
project. </li>
|
|
<li>Launch the server (IDE menu: <b>RemObjects | Launch Server Executable</b>). </li>
|
|
<li>Examine the server window. Some samples require that you activate one or more channels.
|
|
</li>
|
|
<li>Make the client the current project. </li>
|
|
<li>Run the client. </li>
|
|
</ul>
|
|
<p>
|
|
Having tested the sample, next examine the database schema and the services provided. Do this by examining
|
|
the <strong>Schema Modeler</strong> and <b>Service Builder</b> tools provided:
|
|
</p>
|
|
<ul>
|
|
<li><strong>Schema Modeler</strong>
|
|
<ul>
|
|
<li>locate the server form or datamodule containing the TDASchema component</li>
|
|
<li>double click on the TDASchema</li>
|
|
</ul>
|
|
</li>
|
|
<li><strong>Service Builder</strong>
|
|
<ul>
|
|
<li>Ensure that the server is the current project. </li>
|
|
<li>Open the Service Builder (IDE menu: <b>RemObjects | Edit Service Library</b>). </li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<p>
|
|
<strong>Note</strong>: 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.</p>
|
|
<p>
|
|
</p>
|
|
<!==========================================================================><h2 class="h1">
|
|
<span style="font-size: 14pt">
|
|
Sample Categories</span></h2>
|
|
<ul>
|
|
<li>Some samples are shown below in more than one category. </li>
|
|
</ul>
|
|
<table border="1" cellpadding="5" cellspacing="0" style="width: 100%">
|
|
<tbody>
|
|
<tr>
|
|
<th style="width: 506px">
|
|
<p>
|
|
Category
|
|
</p>
|
|
</th>
|
|
<th style="width: 50%">
|
|
<p>
|
|
Samples
|
|
</p>
|
|
</th>
|
|
</tr>
|
|
<tr>
|
|
<td style="width: 506px">
|
|
Introduction</td>
|
|
<td>
|
|
First Sample<br />
|
|
Login Sample<br />
|
|
Calculated Fields<br />
|
|
Custom User Logon<br />
|
|
MegaDemo<br />
|
|
Local Schema<br />
|
|
Quick Open</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<!---------------------------------------------->
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td style="width: 506px">
|
|
Intermediate</td>
|
|
<td>
|
|
Briefcase<br />
|
|
Business Processor<br />
|
|
BusinessRulesScripts<br />
|
|
Data Streamers<br />
|
|
Fetch<br />
|
|
Memory Data<br />
|
|
Multi Level Detail<br />
|
|
SQL Access<br />
|
|
Stored Procedures<br />
|
|
Strongly Typed</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td style="width: 506px">
|
|
Architecture</td>
|
|
<td>
|
|
Connection By User<br />
|
|
Local Schema
|
|
<br />
|
|
Service Methods<br />
|
|
Strongly Typed</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td style="width: 506px">
|
|
Advanced</td>
|
|
<td>
|
|
Connection By User<br />
|
|
Connection Pooling<br />
|
|
Dynamic SQL<br />
|
|
Regular Expressions<br />
|
|
Service Methods<br />
|
|
XSLT</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="width: 506px">
|
|
Third Party
|
|
</td>
|
|
<td>
|
|
QuantumGrid 4<br />
|
|
Report Builder</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<!==========================================================================><h2>
|
|
<span style="font-size: 14pt">Sample Descriptions</span></h2>
|
|
<table border="2" cellpadding="8" cellspacing="0" style="width: 100%">
|
|
<tbody>
|
|
<tr>
|
|
<th style="width: 20%">
|
|
Name</th>
|
|
<th style="width: 15%">
|
|
Category</th>
|
|
<th>
|
|
Description</th>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td>
|
|
Briefcase</td>
|
|
<td>
|
|
Intermediate</td>
|
|
<td>
|
|
This example shows how to create a <b>briefcase model</b> using a Data Abstract
|
|
Client.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
Business Processor</td>
|
|
<td>
|
|
Intermediate</td>
|
|
<td>
|
|
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.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
BusinessRulesScripts</td>
|
|
<td>
|
|
Intermediate</td>
|
|
<td>
|
|
<p>
|
|
This example demonstrates how client side scripts can be <b>modified on the server</b>
|
|
and then <b>downloaded to the client</b> via a simple call.<br />
|
|
When you compile and launch the server, it displays a memo containing various client
|
|
side rules executed within event handlers such as <strong>BeforePost</strong>.</p>
|
|
</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td>
|
|
Calculated Fields</td>
|
|
<td>
|
|
Introduction</td>
|
|
<td>
|
|
This example shows how to handle calculated fields on the server side and client
|
|
side.
|
|
</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td>
|
|
Connection By User</td>
|
|
<td>
|
|
Architecture<br />
|
|
Advanced</td>
|
|
<td>
|
|
Shows various methods how a standard application (i.e. not a RemObjects server or
|
|
client) can obtain a database connection at runtime.
|
|
<br />
|
|
The application uses four Data Abstract components: <strong>TDAADODriver</strong>,
|
|
<strong>TDADriverManager</strong>, <strong>TDAConnectionManager</strong> and <strong>
|
|
TROInMemorySessionManager</strong>.</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td>
|
|
Connection Pooling</td>
|
|
<td>
|
|
Advanced</td>
|
|
<td>
|
|
Shows how connections can be managed via a pool (ADO/Northwind & IBX/Employee
|
|
connections).
|
|
</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td>
|
|
Custom User Logon</td>
|
|
<td>
|
|
Introduction</td>
|
|
<td>
|
|
<p>
|
|
A very simple example showing two methods of opening a connection at runtime:</p>
|
|
<ul>
|
|
<li>creates and opens the connection in a single call passing the UserID/Password values
|
|
supplied. </li>
|
|
<li>creates the connection and opens it afterwards. </li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td>
|
|
Data Streamers</td>
|
|
<td>
|
|
Intermediate</td>
|
|
<td>
|
|
<p>
|
|
This example shows how a dataset can be written to a stream and read from it using
|
|
the <b>TDABinDataStreamer</b> class.<br />
|
|
When you compile and launch this example it displays two grids, the sources for
|
|
which are datasets dynamically read using <b>TStream</b>.</p>
|
|
</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td>
|
|
Dynamic SQL</td>
|
|
<td>
|
|
Advanced</td>
|
|
<td>
|
|
<p>
|
|
This demo shows how to retrieve schema and/or data via SQL generated at runtime.<br />
|
|
When you compile and run the server, you will see it contains a memo displaying
|
|
"<i>SQL details generated for Update will be displayed here</i>". The demo does
|
|
not actually attempt to update server data but merely displays the fields that would
|
|
be updated by processing the delta.</p>
|
|
</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td style="height: 18px">
|
|
Fetch</td>
|
|
<td style="height: 18px">
|
|
Intermediate</td>
|
|
<td style="height: 18px">
|
|
This demo shows how to fetch paged orders and also master/detail via single server
|
|
call.
|
|
</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td>
|
|
First Sample</td>
|
|
<td>
|
|
Introduction</td>
|
|
<td>
|
|
This sample illustrates the basic functionality of <b>Data Abstract</b>.
|
|
<br />
|
|
The application, which shows how to receive data from a remote database, was created
|
|
using the <b>Data Abstract 4.0 Combo Server wizard</b>.</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td>
|
|
Local Schema</td>
|
|
<td>
|
|
Introduction<br />
|
|
Architecture</td>
|
|
<td>
|
|
A simple demo showing the use of several Data Abstract components to select/update
|
|
a range of Customer records.</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td style="height: 28px">
|
|
Login Sample</td>
|
|
<td style="height: 28px">
|
|
Introduction</td>
|
|
<td style="height: 28px">
|
|
<p>
|
|
This example shows how to provide a simple Login.<br />
|
|
The login data is held in Northwind's Employees table, with the <i>FirstName</i>
|
|
and <i>LastName</i> fields used for <b>UserName</b> and <b>Password</b> respectively.
|
|
</p>
|
|
</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td style="height: 28px">
|
|
MegaDemo</td>
|
|
<td style="height: 28px">
|
|
Introduction</td>
|
|
<td style="height: 28px">
|
|
The sample shows:
|
|
<ul>
|
|
<li>How we can work with several connections to different databases (Northwind - MS
|
|
SQL and Employee - Firebird). </li>
|
|
<li>How we can implement security and access rights in our application. </li>
|
|
<li>Master-detail relations between tables is implemented via a service that provides
|
|
a list of orders by user id. </li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
Memory Data</td>
|
|
<td>
|
|
Intermediate</td>
|
|
<td>
|
|
<p>
|
|
This example shows how to create and populate a virtual dataset dynamically.<br />
|
|
The client displays two grids:
|
|
</p>
|
|
<ul>
|
|
<li><b>Top Grid</b>: this displays the primary keys of one or more datasets from Northwind.
|
|
</li>
|
|
<li><b>Bottom Grid</b>: this displays the names and sizes of files contained in the
|
|
specified disk folder. </li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td style="height: 28px">
|
|
Multi Level Detail</td>
|
|
<td style="height: 28px">
|
|
Intermediate</td>
|
|
<td style="height: 28px">
|
|
This sample shows how to implement master/detail/detail updates as simply as possible.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
QuantumGrid 4</td>
|
|
<td>
|
|
Third Party</td>
|
|
<td>
|
|
This example demonstrates how to use the <b>QuantumGrid4</b> (or <b>QuantumGrid5</b>)
|
|
product from Developer Express (contact <b>www.devexpress.com</b>. for licensing
|
|
information if you do not already have the product).
|
|
</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td style="height: 27px">
|
|
Quick Open</td>
|
|
<td style="height: 27px">
|
|
Introduction</td>
|
|
<td style="height: 27px">
|
|
This example shows how to load <b>TDACDSDataTable</b> data using the <b>TDABinDataStreamer</b>.</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td>
|
|
Regular Expressions</td>
|
|
<td>
|
|
Advanced</td>
|
|
<td>
|
|
This sample illustrates the support provided for <b>regular expressions</b>.</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td style="height: 28px">
|
|
Report Builder</td>
|
|
<td style="height: 28px">
|
|
Third Party</td>
|
|
<td style="height: 28px">
|
|
Requires ReportBuilder 7 from <a href="http://www.digital-metaphors.com">Digital Metaphors</a>.<br />
|
|
This example shows how to create the report on the server, stream it to the client
|
|
and then display to the client.</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td style="height: 27px">
|
|
Service Methods</td>
|
|
<td style="height: 27px">
|
|
Architecture<br />
|
|
Advanced</td>
|
|
<td style="height: 27px">
|
|
This example illustrates the methods of the <b>IDataAbstractService</b> base
|
|
service. It shows the options available to change the server's operations and also
|
|
shows the order in which server methods are invoked.
|
|
</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td>
|
|
SQL Access</td>
|
|
<td>
|
|
Intermediate</td>
|
|
<td>
|
|
This example treats two different SQL queries as if they are the same one. One takes
|
|
data from the <strong>SHIPPERS</strong> table and the other from the <strong>CUSTOMERS</strong>
|
|
table.
|
|
<br />
|
|
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.<br />
|
|
This sample also illustrates the use of various macro processors (<strong>TMSSQLMacroProcessor</strong>,
|
|
<strong>TIBMacroProcessor</strong>, <strong>TOracleMacroProcessor</strong>, <strong>
|
|
TDBISAMMacroProcessor</strong>).
|
|
</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td>
|
|
Stored Procedures</td>
|
|
<td>
|
|
Intermediate</td>
|
|
<td>
|
|
This example shows how to use the IDAConnection's <b>GetStoredProcedureNames</b>
|
|
method to retrieve a list of stored procedures for the connection.
|
|
<br />
|
|
It also shows how to use IDAConnection's <b>NewCommand</b> to access the <b>IDASQLCommand</b>
|
|
interface</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<tr>
|
|
<td>
|
|
Strongly Typed</td>
|
|
<td>
|
|
Architecture<br />
|
|
Intermediate</td>
|
|
<td>
|
|
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.</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
XSLT</td>
|
|
<td>
|
|
Advanced</td>
|
|
<td>
|
|
This example shows how to import dataset data into an .xml file by using the <b>TDAXmlDataStreamer</b>.
|
|
Exporting dataset changes to an .xml file is also shown.</td>
|
|
</tr>
|
|
<!---------------------------------------------->
|
|
<!---------------------------------------------->
|
|
<!---------------------------------------------->
|
|
<!---------------------------------------------->
|
|
</tbody>
|
|
</table>
|
|
<br />
|
|
<h2>
|
|
<span style="font-size: 14pt">Support</span></h2>
|
|
|
|
<p>
|
|
If you encounter any problems or have questions regarding the Samples,
|
|
please feel
|
|
free to ask on our newsgroup at
|
|
<a href="news://news.remobjects.com/remobjects.public.dataabstract.delphi">news://news.remobjects.com/remobjects.public.dataabstract.delphi</a>.
|
|
</p>
|
|
<p>
|
|
Thank you very much,<br /> Your RemObjects Team<br /> <a href="http://www.remobjects.com">http://www.remobjects.com</a>
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
|
|
<!-------------------------------------------------------------------------->
|
|
</body>
|
|
</html> |