Componentes.Terceros.RemObj.../internal/5.0.23.613/1/Data Abstract for Delphi/Samples/Samples.html
david 2824855ea7 - Modificación del paquete RemObjects_Core_D10 para que sea un paquete de runtime/designtime (antes era designtime sólo)
- 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
2007-09-10 14:06:19 +00:00

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&trade; 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 &quot;sa&quot;
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 &quot;sa&quot; 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.&nbsp;</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.&nbsp; </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:&nbsp; <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 &amp; 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.&nbsp;
</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">
&nbsp;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>
&nbsp;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>
&nbsp;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>
&nbsp;
</p>
<!-------------------------------------------------------------------------->
</body>
</html>