comp.lang.ada
 help / color / mirror / Atom feed
From: "Warren W. Gay VE3WWG" <ve3wwg@cogeco.ca>
Subject: Re: Coupling or not coupling database and GUI libraries
Date: Thu, 21 Oct 2004 17:11:20 -0400
Date: 2004-10-21T17:11:20-04:00	[thread overview]
Message-ID: <1CVdd.27477$J16.1594687@news20.bellglobal.com> (raw)
In-Reply-To: <87mzyglzkm.fsf_-_@insalien.org>

Ludovic Brenta wrote:

> As a backgrounder on my experience: a few years ago, I wrote a 120
> kSLOC application in Java that did just that - an interface to a
> database.  The front-end started as Swing but changed to HTML and a
> bit of Javascript.  There was an abstraction layer over the database
> that supported Oracle, DB2 and DB2/400 and provided the database
> schema metadata to the visualisation layer.  There were a connection
> pool, several caches of metadata and data, and application-level
> permission settings (authentication was delegated to the database
> server, authorisation done in the application).

Ah, but you had to _build_ something, which is fine. I am not
suggesting an _implementation_, but I do think it needs to
be handled somehow. To do this elegantly, I believe that
GUI and database packages need to at least plan for the
possibilities.

> I have several concerns with tight integration of GUI and database
> libraries.
> 
> 1. If every widget can be attached to a database query, will every
>    update to a widget not cause an SQL query?  This should be avoided.

No of course not. This is configured at the point of building
the application (whether by GUI in Delphi or by some other means).

> 2. If every widget is attached to a query, is it possible to update
>    several widgets with one query, i.e. that several widgets be
>    attached to the same query?

Again, widgets are not hardwired to any database "concept". But yes,
it is possible in MFC for example, to associate multiple widgets
with column data. Someone with a better memory help me out here: there
is some kind of xfer event or API call.

> 3. Is it possible to perform arbitrarily complex, application-specific
>    formatting to the data as it goes back and forth between the
>    widgets and the database?

Complex cases always tend to be a "do it yourself" approach (no
surprise there). The there are many mundane cases that can be
handled elegantly. The simplest case is perhaps like the Dbase
case of a form matching a row of data (not using Dbase terminology).

> In the application I mentioned, we would routinely do queries that
> joined 5 or 6 tables, and we had lots of heuristics to help speed that
> up.  In one of the screens, we would present a tree structure
> constructed from oh, perhaps 10 different queries.

Joins by themselves are not a problem if you're only presenting data.
Doing updates are a bit different of course.

What you want to do is eliminate most of the grunt work. You won't
eliminate it all, but you can do a lot of it. Out of a large
application where you might have 200 screens, most of them will
be stupid and simple, and I see no point in handcrafting it all ;-)

> I have not really had a deep look at either Delphi, MFC, 

Delphi and MFC had ways to make your life much easier with
databases. MFC fell down when it came to handling NULL values
in calendar widgets etc., but it tried.


> or GWindows,
> but I suspect that coupling the GUI and the database libraries is only
> useful for quick-and-dirty work when you want to create forms where
> one form=one record in the database.

I have to disagree.

> But for anything more complex, such coupling just gets in the way.  

Much of the necessary coupling is grunt work. We have more creative
things to be doing.

 > In
> fact, it is the job of any non-trivial database GUI to perform the
> "grunt work" you mentioned, and I cannot think of a useful way the
> library could ease that.  

Well, you admit to not having tried it. Try it first, and then you
might see that there is at least a partial solution.

 > Or perhaps you were only thinking of
> marshalling and unmarshalling of individual database fields to and
> from the database?  

Nope. Column X must have its data populated in a control. WHen a
save occurs, you must do the reverse. Grunt work, plan in simple.
Multiply that by the number of column-widget pairs. More grunt.
It is also easy to automate this kind of stuff, with the right
kind of organization.

> Java's JDBC is not tightly coupled with Swing or AWT.  Both APQ and
> GNADE are similar in concept to it, or the ODBC API which is also not
> coupled with any GUI.

APQ is not currently linked to any GUI. I would like to perhaps
make a change on that score someday, but I haven't had much time
to plan it yet.

> I do not think it is wise to have a GUI-dependent database library.

Think in the larger sense of solving the problem, rather than its
implementation. How it is solved is unimportant to me, but it does
need to be solved. GUI and databases are frequently cousins.

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



  reply	other threads:[~2004-10-21 21:11 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-29  2:48 GWindows and a future home for it Fionn mac Cuimhaill
2004-09-29  2:53 ` stephane richard
2004-09-29  7:20   ` Martin Krischik
2004-09-29 12:40 ` Chris Humphries
2004-09-29 15:21   ` stephane richard
2004-09-29 19:12     ` Chris Humphries
2004-09-30  0:03 ` Stephen Leake
2004-09-30  1:39   ` stephane richard
2004-09-30  3:29   ` Fionn mac Cuimhaill
     [not found]     ` <mailman.141.1096581654.390.comp.lang.ada@ada-france.org>
2004-09-30 23:32       ` Randy Brukardt
2004-10-01  1:28     ` Stephen Leake
2004-10-01  1:39       ` stephane richard
2004-10-01  6:43       ` Fionn mac Cuimhaill
     [not found]     ` <umzz75se6.fsf@acm.org>
2004-10-01 10:48       ` Marius Amado Alves
2004-10-01 14:49         ` Fionn mac Cuimhaill
2004-10-01 15:39           ` Marius Amado Alves
2004-10-01 15:50             ` stephane richard
2004-10-01 16:25               ` Chris Humphries
2004-10-01 17:09                 ` Ludovic Brenta
2004-10-21 17:12                   ` Warren W. Gay VE3WWG
2004-10-21 18:02                     ` Coupling or not coupling database and GUI libraries (was: GWindows and a future home for it) Ludovic Brenta
2004-10-21 21:11                       ` Warren W. Gay VE3WWG [this message]
2004-10-22  2:36                       ` David Botton
2004-10-02  2:01             ` GWindows and a future home for it Fionn mac Cuimhaill
2004-09-30 14:40   ` Nick Roberts
2004-09-30 15:22     ` stephane richard
2004-10-01 19:52       ` Nick Roberts
2004-09-30 16:55     ` tmoran
2004-09-30 22:17   ` Stephen McNeill
2004-09-30 22:48     ` stephane richard
2004-10-01 16:34   ` Björn Persson
2004-10-01 16:58   ` AndreS
2004-10-01 18:08     ` Georg Bauhaus
2004-10-01 18:16       ` Randy Brukardt
2004-10-01 23:20         ` tmoran
2004-10-02  0:45         ` Jeffrey Carter
2004-10-03 17:23           ` David Botton
2004-10-04 22:10         ` Randy Brukardt
2004-10-01 18:40       ` Marius Amado Alves
2004-10-03 22:45         ` Georg Bauhaus
2004-10-04 13:01           ` Marius Amado Alves
2004-10-04 21:05             ` Ludovic Brenta
2004-10-06 10:13               ` Marius Amado Alves
2004-10-06 13:15                 ` David Botton
2004-10-06 14:35                   ` Marius Amado Alves
2004-10-06 15:07                     ` Hyman Rosen
2004-10-06 17:04                       ` Marius Amado Alves
2004-10-06 17:53                         ` Licenses and physical things Björn Persson
2004-10-06 18:02                         ` GWindows and a future home for it Hyman Rosen
2004-10-06 18:39                           ` Marius Amado Alves
2004-10-06 18:58                         ` Georg Bauhaus
2004-10-06 19:20                           ` Marius Amado Alves
2004-10-06 20:30                             ` Hyman Rosen
2004-10-06 21:28                               ` Marius Amado Alves
2004-10-06 21:40                                 ` Hyman Rosen
2004-10-07 11:50                     ` Marin David Condic
2004-10-07 14:33                       ` Georg Bauhaus
2004-10-06 13:19                 ` Gnat Pro and the GPL Björn Persson
2004-10-06 17:16                   ` Marius Amado Alves
2004-10-06 17:55                     ` Björn Persson
2004-10-06 18:18                       ` Marius Amado Alves
2004-10-06 19:02                         ` Hyman Rosen
2004-10-06 20:25                           ` Björn Persson
2004-10-07  6:07                             ` Florian Weimer
2004-10-07 16:00                               ` Björn Persson
2004-10-06 22:21                         ` CBFalconer
2004-10-06 18:04                     ` Hyman Rosen
     [not found]               ` <4163C54F.9050700@netcabo.pt>
2004-10-07  0:27                 ` GWindows and a future home for it Stephen Leake
2004-10-07  0:55                   ` stephane richard
2004-10-07 19:11                     ` Not redistributing GNAT Pro (was: GWindows and a home for it) Ludovic Brenta
2004-10-08  2:07                       ` Jeff C r e e.m
2004-10-08 16:50                         ` Not redistributing GNAT Pro Ludovic Brenta
2004-10-08 17:26                           ` Jeff C r e e.m
2004-10-09  2:27                           ` Brian May
2004-10-09 11:14                             ` Ludovic Brenta
2004-10-09  5:16                           ` CBFalconer
2004-10-09  9:57                             ` Jerry van Dijk
2004-10-08  5:53                       ` Not redistributing GNAT Pro (was: GWindows and a home for it) Simon Wright
2004-10-01 23:57     ` GWindows and a future home for it Stephen Leake
2004-10-02  3:06     ` Fionn mac Cuimhaill
2004-10-02  7:13       ` tmoran
2004-10-03 16:22         ` James E. Hopper
2004-10-03 19:03         ` Future of Ada volunteer efforts David Botton
2004-10-03 23:31           ` stephane richard
2004-09-30  0:13 ` GWindows Database time type Stephen Leake
2004-09-30  4:31   ` Fionn mac Cuimhaill
2004-10-01  0:57     ` Stephen Leake
2004-10-01  1:44       ` stephane richard
2004-10-01  3:04         ` Randy Brukardt
2004-10-01 10:07           ` stephane richard
2004-09-30 18:44   ` Georg Bauhaus
2004-10-21 17:29     ` Warren W. Gay VE3WWG
2004-10-22  2:32       ` David Botton
2004-10-22 16:46         ` Warren W. Gay VE3WWG
2004-10-21 17:26   ` Warren W. Gay VE3WWG
2004-10-03 15:41 ` AdaPower and GWindows community effort drive David Botton
2004-10-03 16:45   ` stephane richard
2004-10-03 17:29     ` David Botton
2004-10-03 17:38       ` stephane richard
2004-10-03 19:10         ` David Botton
2004-10-04  2:12       ` Stephen Leake
2004-10-04  2:21         ` stephane richard
2004-10-04 13:25         ` David Botton
2004-10-04  2:37   ` Fionn mac Cuimhaill
2004-10-04  2:49     ` stephane richard
2004-10-04 13:44     ` David Botton
2004-10-05  1:25       ` David Botton
replies disabled

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