[unixODBC-dev] ODBC on 64 bit linux - test64

ZIGLIO, Frediano, VF-IT Frediano.Ziglio at vodafone.com
Tue Jan 22 08:53:01 GMT 2008


> 
> On Mon, Jan 21, 2008 at 03:33:05PM +0100, ZIGLIO, Frediano, 
> VF-IT wrote:
> > test64 tests (currently) SQL_DESC_ROWS_PROCESSED_PTR. This 
> pointer holds
> > the pointer to how many rows are returned/processed. I 
> wrote test cause
> > this pointer is bound to many attributes. The test demonstrate that
> > indipendently from how you set this pointer it's always 
> SQLULEN (that is
> > 64bit on 64bit platforms). So
> > - SQLSetStmtAttr SQL_ATTR_PARAMS_PROCESSED_PTR
> > - SQLSetDescField SQL_DESC_ROWS_PROCESSED_PTR (both IPD and IRD)
> > - SQLSetStmtAttr SQL_ATTR_PARAMS_PROCESSED_PTR
> > - parameter pirow of SQLParamOptions
> > - parameter RowCountPtr of SQLExtendedFetch
> > are SQLULEN* under 64bit!
> 
> > This is not well stated at http://support.microsoft.com/kb/298678 !!
> > For this reason SQLROWSETSIZE unixODBC type should be SQLULEN not
> > SQLUINTEGER !!
> 
> Which they are with unixODBC 2.2.11; are you saying that the 
> typedef of
> SQLROWSETSIZE has regressed, or are you using an older version?
> 

I don't know, on Fedora Core 6 (I think results on Debian/Ubuntu should
be different)

$ cat mao.c
#include <sqltypes.h>

mao mao SQLROWSETSIZE;

$ gcc -DBUILD_REAL_64_BIT_MODE -DSIZEOF_LONG=8 -DSIZEOF_LONG_INT=8 -E
mao.c | grep 'SQLROWSETSIZE\|mao mao'
typedef SQLUINTEGER SQLROWSETSIZE;
mao mao SQLROWSETSIZE;

$ gcc -DSIZEOF_LONG=8 -DSIZEOF_LONG_INT=8 -E mao.c | grep
'SQLROWSETSIZE\|mao mao'
typedef SQLUINTEGER SQLROWSETSIZE;
mao mao SQLROWSETSIZE;

bye
  Frediano Ziglio



More information about the unixODBC-dev mailing list