2008/10/15 Bas Driessen <[EMAIL PROTECTED]> > On Thu, 2008-10-09 at 09:52 +0200, Vivien Malerba wrote: > > > > 2008/10/8 Bas Driessen <[EMAIL PROTECTED]> > > > On Thu, 2008-10-02 at 20:50 +0200, Vivien Malerba wrote: > > > > 2008/10/1 Vivien Malerba <[EMAIL PROTECTED]> > > > > 2008/10/1 Daniel Espinosa <[EMAIL PROTECTED]> > > In V4 you have GdaMetaStore to get columns and others db objects > information. In order to get that information you have to do: > > - Get a GdaMetaStore from a GdaConnnection using > gda_connection_get_meta_store > - Update meta information gda_connection_update_meta_store > - Get columns information using gda_meta_store_extract and use GdaDataModel > API to access to the required information > > The required SQL to do it could be: > > SELECT * FROM _columns WHERE table_schema = ##schema::string AND > table_catalog = ##catalog::string AND table_name = ##table::string > > For gda_column_get_scale you can use numeric_scale column; sorry but don't > know about defined_size. > > > You can use the numeric_precision or numeric_scale columns, with both these > columns you should have all the characteristics of a column. > Now, this was to get meta data information. I agree that I've been a bit > too quick in simplifying the GdaColumn API and I should bring back the API > which handles numeric presicion and scale, but probably not as it was. Let > me think about it. > > > In Rev #3221, I've added functions to set any attribute (as (name, value) > pairs) to GdaColumn, GdaHolder and the GdaMetaTableColumn, which means those > 3 types of objects (well the last one is not an object) can pass onto the > other attributes. For example when creating a GdaDataModelIter, the > attributes for each GdaHolder are set from those of the corresponding > GdaColumn of the data model the iter is for. > > Looking at these new gda_column_get/set_attribute functions. Still it > is not clear to me how to get the size and scale of a column. Again, in V3, > I just use gda_column_get_defined_size and gda_column_get_scale and done. > Can you please give a small example/snippet how to use this with these new > functions? How/where can I find out about the attribute names? > > > const GValue *value; > value = gda_column_get_attribute (column, GDA_ATTRIBUTE_NUMERIC_SCALE); > You can use any of the predefined attribute names in > gda-attributes-manager.h > > However, these attributes are not yet AFAIK set by any database provider. > > > Ok, this appears to work. Thanks for that Vivien. As you expected, it has > not been implemented yet for the providers. > > Can you perhaps give me some (rough) pointers of how/where to implement > this GDA_ATTRIBUTE_NUMERIC_SCALE (and other attributes) for some of the > database providers? Is there a similar situation in place already that I can > use as an example? >
This should be done using, for each database provider, the capabilities of the native database API, ig they support this, or as it's probably the case most of the time using the meta data associated to the connection which is used when executing the SELECT statement, which is done in gda-data-model-iter.c:set_holders_properties_from_select_stmt(), but needs to be completed (and I will probably move this code to the GdaDataSelect object to set the column's properties but the code will be very similar as there is a mapping between the GdaHolders in an iterator and the GdaColumn of the data model the iterator is for). Regards, Vivien
_______________________________________________ gnome-db-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gnome-db-list
