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: