Re: ODBCv3 help... - Mailing list pgsql-odbc
From | James Chin |
---|---|
Subject | Re: ODBCv3 help... |
Date | |
Msg-id | vsjbe0tups5uveftf3ul5bsbur4304vjv6@4ax.com Whole thread Raw |
List | pgsql-odbc |
Eric, After sending my last message, I recalled that you do have to set SQL_ATTR_ODBC_VERSION. This is done before you allocate a connection handle. ODBC 3.x Driver Managers and Drivers check the version of the ODBC spec for which the application is written for. You specify this with the SQLSetEnvAttr ODBC API call. Modify your app as follows: SQLHENV env; SQLHDBC dbc; SQLAllocHandle (SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env); fprintf (stderr, "Allocated ENV\n"); /* Add the following.*/ SQLSetEnvAttr (env, SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3, SQL_IS_UINTEGER); SQLAllocHandle( SQL_HANDLE_DBC, env, &dbc ); fprintf (stderr, "Allocated DBC\n"); I'd still recommend using SQLError to help 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: