🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: comp.lang.pascal.delphi.databases
4 messages
4 total messages Started by Tony Lees Mon, 13 Sep 1999 00:00
Same application, different databases? Scaleability?
#44
Author: Tony Lees
Date: Mon, 13 Sep 1999 00:00
26 lines
1943 bytes
We are investigating re-writing our legacy (Cobol) applications in
Delphi.  We would like to be able to have the one application running
and let the customer choose which  (supported) database they have,
whether it be Paradox, dBASE, Access, MS-SQL, Interbase, Oracle etc,
and whether local or client/server.

Whilst it is clear that Delphi supports any of the above, either
directly or via ODBC, can it support all the above from the same code
- and are there any major downsides to doing this.

The literature and sales people are vague and don't quite answer the
question.    

Our market covers cost sensitive single to 5 user sites, and up to 100
user sites with Oracle or similar.  There are many data files,
including accounting functions, and we expect at the larger end to be
handling 400,000 records.  It is obviously attractive for us to have,
as near as possible, the one application.  

Clarification and pointers to appropriate information most welcome.
Many TIA.


Tony Lees

Put a dash instead of dash if emailing me
Re: Same application, different databases? Scaleability?
#43
Author: Marco Rocci
Date: Tue, 14 Sep 1999 00:00
72 lines
4366 bytes
On Mon, 13 Sep 1999 14:49:12 GMT, tonylees@datarev.udashnet.com (Tony
Lees) wrote:

>We are investigating re-writing our legacy (Cobol) applications in
>Delphi.  We would like to be able to have the one application running
>and let the customer choose which  (supported) database they have,
>whether it be Paradox, dBASE, Access, MS-SQL, Interbase, Oracle etc,
>and whether local or client/server.
>
>Whilst it is clear that Delphi supports any of the above, either
>directly or via ODBC, can it support all the above from the same code
>- and are there any major downsides to doing this.
>
>The literature and sales people are vague and don't quite answer the
>question.    
>
>Our market covers cost sensitive single to 5 user sites, and up to 100
>user sites with Oracle or similar.  There are many data files,
>including accounting functions, and we expect at the larger end to be
>handling 400,000 records.  It is obviously attractive for us to have,
>as near as possible, the one application.  

There are a couple of issues you will have to solve properly.

The first issue is efficiency.  Desktop dbs have to be accessed
through tables, indexes and ranges to be quick (especially with the
numbers you are expecting), while queries are much better on C/S
databases.  You should handle this by having a double set of datasets.
A set of tables for desktop dbs and a set of queries for C/S dbs.  It
is easy to incapsulate this in Delphi (probably in a datamodule)
because most data-aware components point to a TDataSource object which
in turn points to a TTable or a TQuery result set, and most components
don't really know the difference.  Most of the code will have to
reference a generic TDataset or TBDEDataset and not a specific TTable
or TQuery.

The second issue is that while C/S dbs, like InterBase and Oracle,
provide a trigger and stored-procedure language and strong data
integrity constraints... this is not so on the desktop databases.  And
triggers and stored procedures are not portable even among the
different C/S databases.  So you either leave them out or provide for
some differences in behaviour among the dbs.  Probably the easiest way
is to leave integrity out and implement all constraints on the client
application.  This is easy but I do not recomend that you ignore the
additional potential of C/S data integrity.

The third issue is that *some* features are not supported by all dbs
or behave differently.  You will probably have differences in the
record locking mechanics among the different dbs (pessimistic vs
optimistic requires a slightly different client application logic).
You might have some problems with indexes among the desktop dbs (you
could try to avoid composite indices and dbase unique indices).  You
must avoid autoincrement fields.  You should beware that not all dbs
support all the Delphi field types (so beware of memos, float,
currency and date/time/datetime).  Beware of M$ Access as is seems to
present a whole set of specific problems.  Most of these things might
not cause obvious errors, but might cause some subtly different and
strange behaviours.  You will probably have to use the few common
feature of most dbs, avoiding where possible specific features
supported by one single db.

Anyway... good luck... I don't know of anyone that succeeded in this
task... but I think it *is* possible.

Regards,

--
Marco Rocci
MicroEra srl
Turin, Italy
-----------------
vota contro lo SPAM su: http://www.politik-digital.de/spam/
Re: Same application, different databases? Scaleability?
#42
Author: Jan Rosinowski
Date: Wed, 15 Sep 1999 00:00
8 lines
1157 bytes
>Anyway... good luck... I don't know of anyone that succeeded in this
>task... but I think it *is* possible.

that's the point :-) 

ciao, jan 

dokumentenmanagement und mehr: http://www.rsp.de/ vertriebspartner gesucht!
Re: Same application, different databases? Scaleability?
#41
Author: Tony Lees
Date: Fri, 17 Sep 1999 00:00
24 lines
1741 bytes
mrocciNOSPAM@tin.it (Marco Rocci) wrote:

>
>Anyway... good luck... I don't know of anyone that succeeded in this
>task... but I think it *is* possible.
>

Thank you for your considered reply.  We certainly don't want to get
involved with creating non-standard approaches, or doing something
that no-one has ever done before.

It seems that we probably will be best adopting an SQL/Client-Server
approach using Interbase and tackle the issue of other databases when
the situation arises.  

Do you have any feel for how comprehensive LOCALSQL is?  For instance,
if Paradox was used, will LOCALSQL place limitations on what can be
done - or are all the "normal" database functions catered for?

With thanks

Tony Lees

Put a dash instead of dash if emailing me
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads