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

ZIGLIO, Frediano, VF-IT Frediano.Ziglio at vodafone.com
Mon Jan 21 14:33:05 GMT 2008


Sebastien just reported to me log from tests ran under win64. test64
return

start test test64.exe  
odbctest
--------

connection parameters:
server:   'egServer80'
user:     'f4gl'
password: '????'
database: 'testdb'
use testdb
create table #tmp1 (i int)
INSERT INTO #tmp1(i) VALUES(?)
INSERT INTO #tmp1(i) VALUES(?)
INSERT INTO #tmp1(i) VALUES(?)
SELECT DISTINCT i FROM #tmp1
SELECT DISTINCT i FROM #tmp1
SELECT DISTINCT i FROM #tmp1
ok test test64.exe 

Well... what's test64 and what does this result mean??

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 !!

Frediano Ziglio



More information about the unixODBC-dev mailing list