[unixODBC-dev] MS SQLServer drivers / Linux ODBC Driver Manager

Nick Gorham nick at lurcher.org
Fri Mar 9 09:53:04 GMT 2012

On 07/03/12 16:44, Duncan Kerr wrote:
> Im connecting to SQLServer using the above, using unixODBC-2.3.1.  My test program works fine, my main application fails after successfully connecting to the database when it calls SQLGETDIAGRECW on line 4447 of __info.c.  mky stack looks is below, and the arguments to SQLGETDIAGRECW are
> SQLGETDIAGRECW(connection=0x00000000006c19c0,
>             head->handle_type = 2,
>             handle=0x000000000070e650,
> rec_number=1,
> sqlstate={31152,65535,2,0,94,0},
> &native (native=0),
> msg1=0x0000fffffff74c0 (byte 0 = NULL)
> sizeof(msg1),
> &len (len=260545));
> My test program has similar arguments, except sqlState={31856,99,0,0,75,0} and works fine.  Any ideas folks?

At that point the driver manager is reading error messages from the 
driver, either after a connection error, or the "changed database to" 
info messages after the connect. I can't see any obvious place the 
problem could occur, the code in question is called everytime the drive 
manager needs to extract a error from the driver.

Looking at the args to function_return_ex with ret_code=1 makes me think 
the connect has been ok, and its just trying to get the info messages 
back after the connection.

Maybe worth trying with valgrind to see if there is any memory 
overwriting issues going on.


More information about the unixODBC-dev mailing list