Re: [gnome-db] A small question.

El vie, 01-11-2002 a las 20:16, Rodrigo Moya escribió:
> ok, the problem is that gda_client_open_connection only returns a valid
> GdaConnection if it can connect to the database. So, first of all, you
> should check the return value of that function:
> 	connection = gda_client_open_connection (client, "ds_prueba", NULL,
> NULL);
> 	if (GDA_IS_CONNECTION (connection))
> 		g_print ("CONNECTED\n");
> 	else
> 		g_error ("could not open connection");
> as a better way, you can connect (g_signal_connect) to the "error" signal on the
> GdaClient object, and the callback you set up for the signal will be called
> with error information if there is an error. So:
> client = gda_client_new ();
> g_signal_connect (G_OBJECT (client), "error", client_error_cb, NULL);
> ...
> void
> client_error_cb (GdaClient *client, GdaConnection *cnc, GList *errors, gpointer data)
> {
> 	GList *l;
> 	for (l = errors; l != NULL; l = l->next) {
> 		GdaError *err = l->data;
> 		g_print ("ERROR: %s\n", gda_error_get_description (err));
> 	}
> }
> This will show up the error messages from the database server, so that might give you
> a hint of what is failing.
> But anyway, just guessing, if you connect locally (DB server in the same machine),
> the DSN should be:
> gda_config_save_data_source ("ds_prueba", "MySQL", "DATABASE=mysql;UNIX_SOCKET=/var/run/mysqld/mysqld.sock",
> 			                        "Test access", "root", NULL);
> also, instead of creating a data source, you can just call
> gda_client_open_connection_from_string.
> cheers


	Thanks! It is working now. I will keep practising :-)

	Though, I found two strange things. The first function (show_table)
defined in the examples, only showed the name of the first column. The
sencond (show_table2), printed out an 'Segment fault' :-?

	For the first one, I have written:

void show_table (GdaDataModel * dm)
        gint row_id;
        gint column_id;
        GdaValue *value;

        for (column_id = 0; column_id < gda_data_model_get_n_columns
(dm); column_id++)
                g_print ("%s\t", gda_data_model_get_column_title (dm,
        g_print ("\n\n");

        for (row_id = 0; row_id < gda_data_model_get_n_rows (dm);
                for (column_id = 0; column_id <
gda_data_model_get_n_columns (dm); column_id++)
                        value = (GdaValue *) gda_data_model_get_value_at
(dm, column_id, row_id);
                        g_print ("%s\t", gda_value_stringify (value));
                g_print ("\n");

	I know it is nearly the same, but it is a little confusing at first; I
kept wondering why the other column names weren't being shown.

	At last. ¿Is it possible to get the manual in a printable format?

	Thanks. Bye.

Ricardo Cervera Navarro (lical)

Usuario registrado de Linux #254225
Claves GNUPG:

ricardo AT zonasiete DOT org
ricardo.cervera AT hispalinux DOT es

"May the SOURCE be with you"

Attachment: signature.asc
Description: Esta parte del mensaje esta firmada digitalmente

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