Re: [gnome-db] Getting table schemea fields in libgda 0.8.105
- From: Rodrigo Moya <rodrigo gnome-db org>
- To: Daniel Morgan <danmorg sc rr com>
- Cc: GDA <gnome-db-list gnome org>
- Subject: Re: [gnome-db] Getting table schemea fields in libgda 0.8.105
- Date: 19 Mar 2002 13:03:10 +0100
On Tue, 2002-03-19 at 12:28, Daniel Morgan wrote:
> Is the function gda_recordset_describe_column supposed to be private and
> not to be seen by a gda client program?
>
yes, it's private, because it is the implementation of the virtual
method defined in its base class, GdaDataModel. So, to access that
function, you just have to call gda_data_model_describe_column for a
GdaRecordset.
> Since we are using data models, I thought I would try using
> gda_connect_get_schema.
>
> I tried writing a function to get the table schema, but it does not
> work. What is the best way for a client application to get meta data
> about table columns? column name, defined size, scale, nullable?
>
with the GDA_CONNECTION_SCHEMA_FIELDS, but there is some f***g bug lying
around which I could not find last night. It is somewhere in the
GdaParameter's management.
> Below, I have provided the source to my function to get the table schema
> and return it as a GdaDataModel.
>
> GdaDataModel* get_table_schema(GdaConnection *cnc, gchar *table_name)
> {
> GdaParameterList * parm_list;
> GdaParameter * parm;
> GdaDataModel * model;
> GdaValue * value;
>
> if(!cnc)
> return NULL;
> if(!table_name)
> return NULL;
>
> parm_list = gda_parameter_list_new();
> parm = gda_parameter_new("name", GDA_VALUE_TYPE_STRING);
> value = gda_value_new_string(table_name);
> gda_parameter_set_value(parm, value);
>
you can use instead:
parm = gda_parameter_new_string ("name", table_name);
> gda_parameter_list_add_parameter(parm_list, parm);
>
> model = gda_connection_get_schema (cnc,
> GDA_CONNECTION_SCHEMA_FIELDS, parm_list);
>
> gda_value_free(value);
> gda_parameter_free(parm);
> gda_parameter_list_free(parm_list);
>
> return model;
> }
>
your code looks ok. As I said, the problem is in the parameter
management.
cheers
--
Rodrigo Moya <rodrigo gnome-db org> - <rodrigo ximian com>
http://www.gnome-db.org/ - http://www.ximian.com/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]