Icon View Incident Report

Serious Serious
Reported By: Chris Holland
Reported On: 4/26/2012
For: Version 4.32 Build 1
# 3560 64-bit ODBC Driver Not Working Properly and Causing Arithmetic Overflow and Access Violations

I was just testing out something with the DBISAM ODBC 64 bit driver and there appears to be a problem with the 64 bit version.

The error appears when trying to fill a DataSet using the 64 bit driver (It works fine with the 32 bit version).

This is the error that I get:

"Arithmetic operation resulted in overflow"

The error comes from the line shown below.

Command.Parameters.Add("AccountCode", OdbcType.VarChar, 10);
Command.Parameters["AccountCode"].Value = accountCode;

DA.Fill(DS);    <<<<< Error occurs here….

if (DS.Tables.Count > 0)
DataTable UserTable = DS.Tables[0];

Comments Comments
The problem had to do with the ODBC driver not being updated properly for 64-bit. In addition to normal pointers changing size, the ODBC 3.x spec for 64-bit included many changes to API parameter sizes that were not originally taken into account with the 64-bit update. This would cause all sorts of random and confusing errors, depending upon the client application being used.

Resolution Resolution
Fixed Problem on 4/30/2012 in version 4.33 build 1

Products Affected Products Affected
DBISAM ODBC Client-Server
DBISAM ODBC Client-Server with Source
DBISAM ODBC Standard with Source