martes, abril 24, 2007

Gnome-Db y GnomeDb#

"GNOME-DB es un proyecto que tiene como objetivo proveer de una arquitectura libre de acceso a datos, la cual se integre con el projecto GNOME." Bueno, lejos de mi horrible traducción gnome-db es un conjunto de librerias que nos proporcionan una forma unificada de acceder a cualquier tipo de base de datos, (incluso tiene soporte para LDAP), y como está pensada para integrarse en aplicaciones de gnome pues tiene una API muy bonita y decente.

Hace poco se ha liberado la version 3.0 la cual esta disponible en:
libgda-3.0
libgnomedb-3.0

Los requisitos que se requieren son:
  • libgda: glib, libxml2, libxslt
  • libgnomedb: libgda and dependencies, Gtk+ >= 2.6.0, libglade, gtksourceview
Sin más y esperando que entren a la pagina de gnome-db para que se enteren de más características de este proyecto.

GnomeDb#

Estuve unos dias tratando de hacer los bindings y por fin pude, al menos mi app de prueba.

Gnome-db-raw

Con esta api casi todo es automático, la foto se muestra por defecto (la tengo guardada en un campo bytea de postgres), el grid se conecta en automático con el combobox, y por si fuera poco y como pueden observar se ve feo eso de IdPersona, pero con glade podemos lograr este otro efecto:

Gnome-db-glade

y esto digamos que es todo el codigo:

using System;
using System.Text;
using Gtk;
using Gda;
using GnomeDb;

/* bla bla bla
inicio de la ventana etc
*/
dmGridPersona.ParameterList.FindParam ("IdPersona").RestrictValues (dmPersona,0); //magia

GnomeDb.BasicForm valuesForm = new BasicForm (dmGridPersona.ParameterList,
"/home/miguel/src/prueaba/gtk-gui/basic_form.glade",
"viewport1",
"Zones");

GnomeDb.RawGrid grid = new RawGrid (dmGridPersona);

Gtk.VBox vbox = new VBox (true, 2);
vbox.PackStart (valuesForm,true,false,0);
vbox.PackStart (grid,true,true,0);
¿Alguien sabe como mostrar codigo de manera decente en blogspot?

No hay comentarios.: