Re: [gnome-db] A small question.
- From: Rodrigo Moya <rodrigo gnome-db org>
- To: Ricardo Cervera Navarro <ricardo cervera hispalinux es>
- Cc: GDA <gnome-db-list gnome org>
- Subject: Re: [gnome-db] A small question.
- Date: 01 Nov 2002 20:16:15 +0100
On Fri, 2002-11-01 at 20:00, Ricardo Cervera Navarro wrote:
> El vie, 01-11-2002 a las 19:35, Rodrigo Moya escribió:
> > On Fri, 2002-11-01 at 19:27, Ricardo Cervera Navarro wrote:
> > > Hi.
> > >
> > > I wonder if this is the correct place to ask this. If not, sorry.
> > >
> > > I am starting to use libgda (running the code of the examples in the
> > > manual) and having a small problem. My little programs compile cleanly
> > > but when I run them and try to do a query, I get this:
> > >
> > >
> > >
> > > ** (TestGDA:1642): CRITICAL **: file gda-connection.c: line 642
> > > (gda_connection_execute_command): assertion `GDA_IS_CONNECTION (cnc)'
> > > failed
> > >
> > >
> > this error is because you're passing an incorrect GdaConnection to that
> > function. Could you show us the code of your program?
>
> Sure. It is based on the examples in the manual:
>
> http://ns.zonasiete.org/~ricardo/command.c
>
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]