Re: FW: DB widget [very long explanation]



Tom Musgrove wrote:
> 
> Greeting Gnome-DB hackers,
> 
> I have a group of hackers that are planning to add functionality for
> Evolution to use a Database for its backend (Evolution is an Outlook 2000
> clone for contact management and email - see http://helixcode.com for more
> information).  One of the programmers has written a database widget already,
> but I felt it might be a better idea to see if we could leverage the
> gnome-db code.
> 
> Below is a discussion of what functionality is eventually desired. Ashley
> ash@comcen.com.au wrote the widget, and is explaining his desired goals and
> visions for it... - much of which is being addressed already by the gnome-db
> and GNUe, and Glade projects.
> 
> I've also appended a conversation between myself and Ashley, as well as
> attached his original code for the DB widget.
> 
Hi Tom!

> My final vision in terms of Evolution is to possible have a backend like
> wombat, so that the client side abstraction is complete, and we just make
> general SQL calls to the backend server.  Then we could almost have it use
> an
> database system from the Act! standard xBase format to Postgres, or MySql.
> Just change the module that the backend calls.  ( I think it's dlopen ?
> dlopen("postgres-sql.a");   ??? )
>
this is already done by gnome-db, and instead of using shared libs, we
use CORBA, which allows to separate the different components into
several machines, for example.
 
> The reasons I wrote the cfdb widget and didn't use gnome-db or the like are:
> 
> - I wanted a general purpose GTK only widget so people could use it for
> small
> rapid database apps (I run a few websites for work that have "Request more
> info" forms that dump into a postgres database (six different websites) and
> I
> have written a program in <shock> VB </shock> that lets them view the
> results.
> I create a new one of these simple database view programs every month. The
> only
> thing I like about <horror> VB </horror> is that it is very easy to create a
> little database app (once you start going beyond that it is terrible).   Put
> a
> database control on the form, give it the database string, put a few
> textboxes
> and label, select the database control in the textbox properties and the
> field
> you want to fill it with, and hit run.  The cfdb widget  makes it very
> similar
> to this.  ) This then leads to second reason.
>
all this is already possible with glade, and although support is quite
small, the GNOME-DB widgets are supported by glade. So, you could do
exactly the same things you did with VB, that is, create a database app
in a few mouse clicks. We are still looking for volunteers for
completing this glade stuff, so any help on this would be much
appreciated.
 
> - From what I read about gnome-db it is a very big library, and in terms of
> a
> widget just for the "layout" side of things, gnome-db didn't seem to be
> atomic(?)(self contained) enough.  You can't just pass it a const connection
> string and have it do it's stuff.  And this is exactly what you need for a
> set
> up like Act! (or Evolution contact manager), where you have a user definable
> main form ( the "layout" ) that is more or less independent of everything
> else,
> except when you need to pass a lookup string (query) or get a particular bit
> of
> information from it (the current contact id or name so you can pass it to
> the
> calendar).  **  The rest of the program can be fixed, but the "layout" has
> to
> be as dynamic as possible. **
> 
in gnome-db, of course you can use atomic connection strings (if I've
understood well what you say). And for the dynamic layout, again, having
the support for the GNOME-DB widgets in glade will mean that you can
change the form very easily.

> - (This one has just come to me) It might be easier if we have different
> versions of the widget to support different databases.  With the way the
> database widget is designed (have people had a look at how it does
> relational
> lookups?) we could have multiple databases running off the one form...  The
> main cfdb widget uses postgresql, and there are some other that use
> different
> db's.
>
GNOME-DB tries to hide all the differences between different DBMS in a
level hidden from clients, so that clients don't have to deal with those
differences, so you could have perfectly one generic widget which can be
used with all DBMS supported by GNOME-DB. In fact, GNOME-DB widgets are
done this way.
 
> - ***-  We need a table widget that is similar to cfdb (takes a table, some
> field names and a lookup and displays the entire "record set").  This would
> be
> the basis for the Note/History widget .  
> 
this is done by the GNOME-DB grid widget. So using GNOME-DB as your DB
backend, will save you this part.

So, what I'll do is to add complete support for the GNOME-DB widgets in
glade (not too difficult, just need to add functionality), and then have
your forms in libglade format, so that you can dynamically load them.
Adding enough properties to the GNOME-DB widgets to be set at design
time in glade, will be all you need to make them useful in a libglade
file.

I have still to look at the code (sorry for the delay, but I just came
back from holidays), but for what I've understood, you could do all you
say in this message with GNOME-DB. Also note that we, at GNOME-DB, want
to have it be a generic database access stuff, suitable for everything
DB-related, so if you find something is missing, just tell us, and we'll
add it if it really fits into GNOME-DB.

Cheers







[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]