comp.lang.ada
 help / color / mirror / Atom feed
From: "Warren W. Gay VE3WWG" <ve3wwg@NoSPAM.cogeco.ca>
Subject: Re: Windows Ada database support.
Date: Mon, 06 Dec 2004 12:52:40 -0500
Date: 2004-12-06T12:52:40-05:00	[thread overview]
Message-ID: <K_0td.8027$l%5.510635@news20.bellglobal.com> (raw)
In-Reply-To: <11w2chxxtggn9.a442ecwtujd2$.dlg@40tude.net>

Dmitry A. Kazakov wrote:
> On Mon, 06 Dec 2004 09:48:09 -0500, Warren W. Gay VE3WWG wrote:
...
>>Keep in mind that you cannot use a relational database without
>>using SQL (at least no examples come to my mind). So if you
>>don't like SQL, then you have to either forget relational,
>>or build a higher level "protocol" that compiles/translates
>>to SQL underneath.
> 
> Yes, this is exactly what I meant. In short, Ada bindings should have
> Create_Table (...) instead of Execute ("CREATE TABLE ..."). Let SQL be
> perfect, firmly standardized, validated etc. Even so to have a language
> within another language is a bad idea.

This problem is virtually unsolvable with the existing products
that people out there use. Some database products (PostgreSQL
for example) promote the use of Object IDs (basically Row IDs).
Still others don't support the concept at all (MySQL). A grey
area exists in a 3rd area (like Informix), which allows you to
use them at your own peril (Row IDs are unique, if you keep
within certain database design restrictions).

Related to this same issue is how to identify rows that lack
a natural primary key. Some databases support an identity
type for the purpose (Sybase), while others use sequences.
Still others like MySQL use some weird idea of an auto
increment integer field (I am too lazy to look up the
specifics for this, but this is documented in the APQ
manual).

Here's another good one: Some databases allow you to declare
a VARCHAR(256). Others are restricted to VARCHAR(255), and you
must switch to a different type (TEXT I think), if you need
longer fields.

Some support boolean types, and others do not. Some support
arrays, others do not. If they both support arrays, they
are guaranteed to work with different rules and syntax.

There seems to be virtually no agreement on how blobs are
handled and managed, between the different products.

The list of incompatibilities and differences are many
more. For example, there are differences in the way the
client libraries work (ability to fetch one row at a time,
randomly or not (PostgreSQL), must fetch them all into
client memory for random access, or use one-at-a-time
sequential access (MySQL), etc.)

The challenges for a "unified Ada access" layer are so
numerous, that I consider it unachievable. I took a stab
at providing a "portable" binding in APQ, but had to
make various compromises along the way (these are documented
in the manual).

I support the concept, but unless dramatic changes in
product lines emerge, you cannot arrive at the "I
don't want to know what is beneath" solution.  APQ
takes a stab at this problem, and does reduce or
eliminate many of the differences. Truly portable
code will still need to test which database product
is being used, and adjust the SQL to suit in some
cases. There is just no way to avoid it.

-- 
Warren W. Gay VE3WWG
http://home.cogeco.ca/~ve3wwg



  reply	other threads:[~2004-12-06 17:52 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-24 12:31 Windows Ada database support Mark Doherty
2004-11-24 15:04 ` Marius Amado Alves
2004-11-24 18:35 ` Pascal Obry
2004-11-24 19:17   ` Alex R. Mosteo
2004-11-24 19:30     ` Dmitry A. Kazakov
2004-11-24 22:32       ` Ching Bon Lam
2004-11-25  1:03 ` David Botton
2004-11-25 17:50   ` Warren W. Gay VE3WWG
2004-11-26  9:15     ` Dmitry A. Kazakov
2004-11-26 18:36       ` David Botton
2004-11-27  8:59         ` Dmitry A. Kazakov
2004-11-28  0:46           ` David Botton
2004-11-28  9:51             ` Dmitry A. Kazakov
2004-11-28 10:23               ` Pascal Obry
2004-11-28 11:03                 ` Dmitry A. Kazakov
2004-11-28 14:38                   ` Martin Dowie
2004-11-28 16:51                     ` Marius Amado Alves
2004-11-28 19:50                       ` Martin Dowie
2004-11-28 20:49                       ` Christopher Browne
2004-11-28 17:29                     ` Dmitry A. Kazakov
2004-11-28 17:47                       ` Marius Amado Alves
2004-11-28 18:56                         ` Dmitry A. Kazakov
2004-12-06 14:57                           ` Warren W. Gay VE3WWG
2004-11-28 18:45                   ` Pascal Obry
2004-11-28 19:13                     ` Dmitry A. Kazakov
2004-11-28 20:04                       ` Pascal Obry
2004-11-29  9:04                         ` Dmitry A. Kazakov
2004-11-29 10:07                         ` Adrien Plisson
2004-11-29 11:00                           ` Alex R. Mosteo
2004-11-29 13:12                             ` Frank Piron
2004-12-01 16:19                           ` Pascal Obry
2004-12-02 10:37                             ` Marius Amado Alves
2004-12-02 10:58                               ` Frank Piron
2004-12-03  2:50                               ` John B. Matthews
2004-11-28 20:36                     ` Marius Amado Alves
2004-11-29  1:40                       ` Georg Bauhaus
2004-11-29 10:30                         ` Marius Amado Alves
2004-11-29  1:28       ` Georg Bauhaus
2004-11-29  8:53         ` Dmitry A. Kazakov
2004-11-29 11:09           ` Georg Bauhaus
2004-11-29 12:01             ` Dmitry A. Kazakov
2004-11-29 14:07               ` Georg Bauhaus
2004-11-29 18:04                 ` Dmitry A. Kazakov
2004-11-29 22:05                   ` Georg Bauhaus
2004-11-30 11:00                     ` Dmitry A. Kazakov
2004-11-30 13:46                       ` Ole-Hjalmar Kristensen
2004-11-30 15:04                         ` Dmitry A. Kazakov
2004-11-30 16:09                         ` Georg Bauhaus
2004-11-30 16:07                       ` Georg Bauhaus
2004-11-30 18:52                         ` Dmitry A. Kazakov
2004-11-30 21:10                           ` Georg Bauhaus
2004-12-01  9:11                             ` Dmitry A. Kazakov
2004-11-29 12:56       ` Marius Amado Alves
2004-11-29 13:26         ` Dmitry A. Kazakov
2004-11-29 15:02       ` Frank Piron
2004-11-29 15:58         ` Marius Amado Alves
2004-11-29 18:16         ` Dmitry A. Kazakov
2004-11-30  7:14           ` Frank Piron
2004-12-06 14:48       ` Warren W. Gay VE3WWG
2004-12-06 16:29         ` Dmitry A. Kazakov
2004-12-06 17:52           ` Warren W. Gay VE3WWG [this message]
2004-12-06 19:44             ` Georg Bauhaus
2004-12-06 20:49             ` Dmitry A. Kazakov
2004-12-07  5:16               ` Warren W. Gay VE3WWG
2004-12-07 10:29                 ` Dmitry A. Kazakov
2004-12-07 15:49               ` Georg Bauhaus
2004-12-07 21:29                 ` Dmitry A. Kazakov
2004-12-08  2:24                   ` Georg Bauhaus
2004-12-08  9:05                     ` Dmitry A. Kazakov
2004-12-08 10:03                       ` Ole-Hjalmar Kristensen
2004-12-08 10:56                         ` Dmitry A. Kazakov
2004-12-08 11:19                           ` Marius Amado Alves
2004-12-08 12:51                             ` Frank Piron
2004-12-08 13:43                               ` Dmitry A. Kazakov
2004-12-08 13:41                             ` Dmitry A. Kazakov
2004-12-08 16:09                               ` Georg Bauhaus
2004-12-08 19:46                                 ` Dmitry A. Kazakov
2004-12-09 12:20                                   ` Georg Bauhaus
2004-12-09 12:59                                     ` Dmitry A. Kazakov
2004-12-08 15:58                           ` Georg Bauhaus
2004-12-08 19:43                             ` Dmitry A. Kazakov
2004-12-09 11:58                               ` Georg Bauhaus
2004-12-09 13:27                                 ` Dmitry A. Kazakov
2004-12-09 18:58                                   ` Georg Bauhaus
2004-12-10 10:22                                     ` Dmitry A. Kazakov
2004-12-10 14:28                                       ` Georg Bauhaus
2004-12-10 15:14                                         ` Dmitry A. Kazakov
2004-12-08 15:52                         ` Georg Bauhaus
2004-12-08 20:22                           ` Dmitry A. Kazakov
2004-12-09 12:12                             ` Georg Bauhaus
2004-12-09 12:59                               ` Dmitry A. Kazakov
2004-12-09 18:45                                 ` Georg Bauhaus
2004-12-09 12:22                             ` Ole-Hjalmar Kristensen
2004-12-09 14:03                               ` Dmitry A. Kazakov
2004-12-10 20:47                   ` Simon Wright
2004-11-25  2:18 ` bubble
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox