STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :ġ Download northwind sample db tempale and Create database, then create a 64bit ODBC DSN points to this access accdb file. Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode) Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
I believe it was caused by JDBC-ODBC bridge native codes, that doesn't initialize high 4 bytes of parameter BufferLength, it explains why this issue happens on 64bit jvm only and randomly.Ĭsbase.jar" "co 12f4-10e8 ENTER SQLGetDataĭIAG Invalid string or buffer length (0) The ODBC manager's trace file shows that SQLGetData function was invoked with wrong value of parameter BufferLength. This issue can happen with other odbc drivers: access 2010/2013, excel, sql server, mysql, teradata, etc. The test codes always fails when get column data via ResultSet.getObject()/getString(), on jdk 1.6/1.7,īut it runs well with 32bit jvm/32bit ODBC DSN Tested with access odbc driver 2010, 2013 64bit The same issue happens with jdk 1.7 u21 64bit also: Ī 64bit ODBC DSN is required, this issue can happen on a lots of odbc drivers:Īccess, excel, sql server, mysql, teradata. Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)