2009/7/19 Bas Driessen <[email protected]>
> Hello,
>
> Question regarding partial meta store update. I found that the following to
> update a single table does not appear to work:
>
> * g_print ("\nPartial metastore update for table '%s'...\n",
> TABLE_NAME);*
> * GdaMetaContext mcontext = {"_tables", 1, NULL, NULL};*
> * mcontext.column_names = g_new (gchar *, 1);*
> * mcontext.column_names[0] = "table_name";*
> * mcontext.column_values = g_new (GValue *, 1);*
> * g_value_set_string ((mcontext.column_values[0] = gda_value_new
> (G_TYPE_STRING)), TABLE_NAME);*
> * if (!gda_connection_update_meta_store (connection, &mcontext,
> &error))*
> * return -1;*
>
> After this, my meta store is NOT updated.
>
This may depend on the actual value of TABLE_NAME, specifically if it is a
mix of upper and lower case, or if it's a reserved keyword. The proper way
is:
*tmp = gda_sql_identifier_quote (TABLE_NAME, cnc, NULL, TRUE, FALSE); // or
with the last argument being TRUE, see the doc*
*g_value_set_string ((mcontext.column_values[0] = gda_value_new
(G_TYPE_STRING)), tmp);
g_free (tmp);
*Note that this is brand new (just been sorted out) and will require the
master or LIBGDA_4.0 branches up to date.*
*
>
>
> A partial update to update ALL the tables works fine:
>
> *g_print ("\nPartial metastore update for all the tables...\n");*
> * GdaMetaContext mcontext2 = {"_tables", 0, NULL, NULL};*
> * if (!gda_connection_update_meta_store (connection, &mcontext2,
> &error))*
> * return -1;*
>
>
> The "full" update to update everything also works fine.
>
> Therefore my question, are there any issues with the "single" table update?
> Also, is this supposed to work if I DELETE a table or is it only when new
> tables are added?
>
It should work fine even with removed tables (the table which has been
removed won't appear in the meta store afterwards).
Vivien
_______________________________________________
gnome-db-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gnome-db-list