From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Ada DB bindings and APQ
Date: Wed, 15 Dec 2004 18:43:09 +0100
Date: 2004-12-15T18:43:09+01:00 [thread overview]
Message-ID: <1x4xxn0yx1abu.myr2odcsdxg8$.dlg@40tude.net> (raw)
In-Reply-To: sa43by8ea1e.fsf@snoopy.apana.org.au
On Wed, 15 Dec 2004 10:26:37 +1100, Brian May wrote:
>>>>>> "Dmitry" == Dmitry A Kazakov <mailbox@dmitry-kazakov.de> writes:
>
> Dmitry> That's not OO, yet. It is rather typed vs untyped.
>
> It seems to me it has all the features of an OO system (encapsulation,
> abstraction, inheritance, etc). Rather the issue is that some design
> decisions have been made that you don't agree with.
I didn't mean APQ, otherwise I wouldn't consider it as a starting point. I
meant only the way of constructing queries. Specifically, that there is no
*typed* difference between "CREATE", "1.35" and "INTEGER". Everything is a
string to append. This is untyped => error prone, uncheckable,
unmaintainable.
> While I can see your point of view in issues such as the query type
> being independent of the query string, I can also understand the
> reasons behind doing it this way, and probably would have done the
> same thing myself.
This the next goal: to map the query semantics to a type hierarchy. As the
previous discussion shown, it seems that people are not much ready to
accept it. Let's do it step by step. (:-))
> As far I can tell some of your goals of abstraction, while ideal,
> solutions may require more thought and research in order to make sure
> compatibility with all databases and to ensure your goals really are
> met. For instance, my ideal abstraction layer would completely hide
> the SQL layer completely but maintain the flexibility of the SQL
> layer.
Absolutely, but see above.
> This I think would be really difficult to do, and I am not
> volunteering... It would mean that it could potentially work with any
> database, not just an SQL based database.
>
> Ok, back on planet Earth now, my sane and reasonable priorities for
> this project would be:
>
> 1. Factory for creating a connection based on a URL (see my previous
> message). I would be happy to start working on this if desired
> (note: I don't claim to be any expert on parsing strings in
> Ada...).
Parsing is not a problem. But advantage is not clear. Basically you need:
- Server name
- DB name
- User name
- Password
- Port
What would change if we pack all that in one string instead of four + one
number?
Real difference is when ODBC provides some DB identification service which
combines Server name + DB name + port in one DSN. But this cannot be done
on the client side. So if you have no MS influence
> (note: with 1 completed the next step some people will demand is
> plugins so you can support other database without recompilation.
I demand it right now! (:-))
> I personally don't think this is worth it at the moment, especially
> as APQ doesn't hide all differences in different databases).
But this is the primary objective in my view.
> 2. Support for different character sets. I do not know what this would
> require, but it is a real problem that different database can have
> different character sets, and making assumptions isn't a good
> idea. Not only that, but in latest versions of mysql different
> tables within the same database can have different character
> sets. At the minimum I guess it should be possible to query what
> character set a table is encoded with (note: I don't know how to do
> this). 16 bit UTF support would be nice, but we have UTF8 in the
> meantime.
Fully agree. Main application areas of DBs are localized. So Unicode is a
must.
> 3. Support for other SQL based databases. Note I have this as the
> lowest priority...
Only within a stable API framework. Otherwise, adding a new DB would lead
to reworking APIs.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2004-12-15 17:43 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-12 17:42 Ada DB bindings and APQ Dmitry A. Kazakov
2004-12-14 7:25 ` Warren W. Gay VE3WWG
2004-12-14 17:37 ` Dmitry A. Kazakov
2004-12-14 18:29 ` Georg Bauhaus
2004-12-14 19:45 ` Dmitry A. Kazakov
2004-12-14 21:06 ` Georg Bauhaus
2004-12-15 8:19 ` Ole-Hjalmar Kristensen
2004-12-15 17:20 ` Dmitry A. Kazakov
2004-12-16 13:28 ` Georg Bauhaus
2004-12-17 13:23 ` Dmitry A. Kazakov
2004-12-14 23:26 ` Brian May
2004-12-15 17:43 ` Dmitry A. Kazakov [this message]
2004-12-15 21:54 ` Brian May
2004-12-15 4:05 ` Warren W. Gay VE3WWG
2004-12-15 18:26 ` Dmitry A. Kazakov
2004-12-16 2:53 ` Warren W. Gay VE3WWG
2004-12-18 16:43 ` Dmitry A. Kazakov
2004-12-18 20:36 ` Warren W. Gay VE3WWG
2004-12-18 22:21 ` Dmitry A. Kazakov
2004-12-19 0:53 ` Warren W. Gay VE3WWG
2004-12-19 12:21 ` Dmitry A. Kazakov
2004-12-20 5:33 ` Warren W. Gay VE3WWG
2004-12-20 20:01 ` Dmitry A. Kazakov
2004-12-20 20:54 ` Warren W. Gay VE3WWG
2004-12-14 22:40 ` Brian May
2004-12-15 3:23 ` Warren W. Gay VE3WWG
2004-12-15 15:01 ` Georg Bauhaus
2004-12-17 4:31 ` Brian May
2004-12-15 10:48 ` Brian May
2004-12-16 1:40 ` Brian May
2004-12-16 3:10 ` Warren W. Gay VE3WWG
2004-12-17 4:55 ` Brian May
2004-12-17 11:13 ` Warren W. Gay VE3WWG
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox