2011/12/23 Vivien Malerba <[email protected]>: > > > On 22 December 2011 22:01, Daniel Espinosa <[email protected]> wrote: >> >> I'm planning to create an implementation of interfaces to access a >> database with classes and interfaces from Gee. >> >> This thread is planned to collect comments, suggestions and track >> implementations. May be I can add a link on live.gnome.org when I have >> something functional and solid plans. >> >> First Concepts: >> >> * A database is a collection of schemas and other objects >> * Each schema have a collection of tables, views and other objects >> that have Rows >> * A Row is a collection of values with different types and with >> attributes like: PRIMARY KEY, NAME, TYPE, VALUE, REFERENCEDBY, >> REFERENCE >> * REFERENCEBY and REFERENCE attributes can be used to get a collection >> of related values from other table collection >> >> >> First implementation ideas: >> >> * Define Interfaces and implementator classes , like Gee does, to >> allow any one to access any kind of data. For now current GDA's >> infrastructure will be used. > > > Libgda reports all this information in a GdaMetaStruct object. > > Regards, > > Vivien
I've commited first interfaces as general concept. They uses Vala Generics in order to help any other to implement them whitout a fixed implementation. Added interfaces[1] include DbCollection (Database abstraction as a collection of collections), DbSchema, DbTable, DbRecord and DbField. Derived class will use GdaMetaStruct on demand to retrieve database information and expose as expected by the interfaces. May be I'll propose a new Gee interface called Selectable, where implementors must define a 'select (SqlWhere)' method with SqlWhere as a tree of SqlExpressions to define simple to complex conditions. These could be the first steps to add LinQ support to Vala. On GDA implementations I plan to use GdaSqlBuilder and SqlStatements to implement Selectable interface and include as a pre- requisite for DbTable interface. [1] http://git.gnome.org/browse/libgda/commit/?id=04317b0316398dbe29ad24043219efe735ff1af7 -- Trabajar, la mejor arma para tu superación "de grano en grano, se hace la arena" (R) (en trámite, pero para los cuates: LIBRE) _______________________________________________ gnome-db-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gnome-db-list
