Re: ODBCv3 help... - Mailing list pgsql-odbc

From James Chin
Subject Re: ODBCv3 help...
Date
Msg-id lpgbe0571rsnqg3eos4esgptk1uq763f2r@4ax.com
Whole thread Raw
List pgsql-odbc
Hello Eric,

I can't tell you why it's failing.  It sounds like the value of dbc
after the SQLConnect is a NULL value, which would cause SQLDisconnect
to core.  I'd suggest that you perform some error checking:


    if (SQLConnect( dbc,
                    (SQLCHAR*) "erictest", SQL_NTS,
                    (SQLCHAR* ) "olsoneg", SQL_NTS,
                    (SQLCHAR*) NULL, SQL_NTS ) != SQL_SUCCESS)
     { ... then deal with it ...}

If the return value is not SQL_SUCCESS, you would then use SQLError to
determine what the problem is.

Regards,
James Chin
OpenLink Software Inc.
http://www.openlinksw.com
Product Weblogs:
Virtuoso: http://www.openlinksw.com/weblogs/virtuoso
UDA: http://www.openlinksw.com/weblogs/uda
Universal Data Access & Virtual Database Technology


On 1 Jul 2004 13:04:45 -0700, ericgolson@gmail.com (Eric Olson) wrote:

>my system is configured as follows:
>Red Hat 8, postgreSQL 7.4.3, psqlodbc-07.03.0200, and unixODBC-2.2.9.
>
>I have been trying to get the following very simple code snippet
>working but it always seg faults after connecting to the db....it
>connects then if I try to execute a sql statement it seg faults or in
>the below example just freeing the DBC handle will cause a seg
>fault...am I missing something?? with the v2 calls to alloc handle and
>free handle EVERYTHING works fine...I'm thinking maybe I didn't
>configure something properly to use ODBCv3?:
>
>#include "sql.h"
>#include "sqlext.h"
>#include "stdio.h"
>int main () {
>
>    SQLHENV env;
>    SQLHDBC dbc;
>    SQLAllocHandle (SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
>
>    fprintf (stderr, "Allocated ENV\n");
>
>    SQLAllocHandle( SQL_HANDLE_DBC, env, &dbc );
>    fprintf (stderr, "Allocated DBC\n");
>
>    SQLConnect( dbc,
>                    (SQLCHAR*) "erictest", SQL_NTS,
>                    (SQLCHAR* ) "olsoneg", SQL_NTS,
>                    (SQLCHAR*) NULL, SQL_NTS );
>
>    fprintf (stderr, "Connected\n");
>
>
>     SQLDisconnect( dbc );
>
>    SQLFreeHandle (SQL_HANDLE_DBC, dbc);
>
>    SQLFreeHandle (SQL_HANDLE_ENV, env);
>
>}
>
>
>However if I substitute with the V2 ODBC functions like that follows
>then everything works:
>#include "sql.h"
>#include "sqlext.h"
>#include "stdio.h"
>int main () {
>
>    SQLHENV env;
>    SQLHDBC dbc;
>    SQLAllocEnv (&env);
>
>    fprintf (stderr, "Allocated ENV\n");
>
>    SQLAllocConnect (env, &dbc);
>    fprintf (stderr, "Allocated DBC\n");
>
>    SQLConnect( dbc,
>                    (SQLCHAR*) "erictest", SQL_NTS,
>                    (SQLCHAR* ) "olsoneg", SQL_NTS,
>                    (SQLCHAR*) NULL, SQL_NTS );
>
>    fprintf (stderr, "Connected\n");
>
>     SQLDisconnect( dbc );
>
>     SQLFreeConnect (dbc);
>
>     SQLFreeEnv (env);
>
>}
>
>
>Any help on why the V2 calls work but the V3 don't would be GREATLY
>appreciated...


pgsql-odbc by date:

Previous
From: "Dave Page"
Date:
Subject: Re: Volunteer psqlODBC Developer Required
Next
From: James Chin
Date:
Subject: Re: ODBCv3 help...