Re: [gnome-db] Getting a Table by name





2006/9/20, Vivien Malerba <vmalerba gmail com>:
On 9/19/06, Daniel Espinosa <esodan gmail com> wrote:
> If I have a GdaConnection and the table name I want to insert data into, how
> can I do it?
>
> I'm trying to use GdaDictDatabase but it seems not be completly implement
> (it doesn't declare any code to assing a Dict as a property using
> g_object_set_property); then I can't get the GdaDictTable using its name.
>
> But most of it, is that I can't create a dictionary and update the XML file,
> could you help me?
>
> I think if the dict isn't correctly created, you can't have a valid
> GdaQuery?
>
> Can I pass directly to gda_query_target_new(query, table_name) a string
> given for the user caller?
>
> I have the following code:
>
>     dict = gda_dict_new();
>     gda_dict_set_connection(dict, cnn);
>
>     gda_dict_set_xml_filename(dict,
>
> gda_dict_compute_xml_filename(dict,
>
> gda_connection_get_dsn(cnn),
>
> "GDAAPP", error));
>     g_message("File dict = %s\n",
> gda_dict_get_xml_filename(dict));
>     gda_dict_load(dict, error);
>
>     if(gda_dict_update_dbms_data (dict, 0, NULL,
>                                 error))
>         g_message("Error Dict Not updated...\n");
>
>     /* Getting the Table from the Dictionary */
>     db = gda_dict_database_new(dict);
>     table = gda_dict_database_get_table_by_name(db,
> table_name);
>

About dictionaries:
If all you want to do is add data to a table, then you don't need a
dictionary: a dictionary is usefull only if you need to get
information about what a database structure is.

I just want to add a row and set the values in that new row. Do I need a Dict and/or a GdaQuery?

Any schematized code for do it?
 

This being said, here is how to get a dictionary (schematized, without
any error check):

cnc = gda_client_open_connection ();
dict = gda_dict_new ();
gda_dict_set_connection (dict, cnc);
db = gda_dict_get_database (dict); /* if you call this several times,
you'll always get the same db object */
if (filename)
        /* if you want to load the dictionary from a file */
        gda_dict_load_xml_file (dict, filename);
else {
        /* if you don't have any XML file to load from */
        gda_dict_update_dbms_data (dict);
}
table = gda_dict_database_get_table_by_name (db, "tablename");


About queries:
You don't need a dictionary to build a query, but the query can only
be "active" if it can identify (find) all the objects used in it
(tables, views, fields, functions, etc) in the dictionary which has
been passed when the query was created.
Having a "non active" query does not prevent you from using it, but if
it's a SELECT query, then the column types won't be known untill you
actually execute the query.
Of course the benefits of having an up to date dictionary and "active"
queries is that you can be sure they won't fail.

I can see that I need do some tests to understand "the GdaQuery way" and why I can't use the gda_data_model_append_values function; do you plan to deprecate that function and others that *must* use  a GdaQuery Object to perform operations?



--
Trabajar, la mejor arma para tu superación
"de grano en grano, se hace la arena" (R) (entrámite, pero para los cuates: LIBRE)

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