Thread: ODBCv3 help...

ODBCv3 help...

From
ericgolson@gmail.com (Eric Olson)
Date:
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...