Subject Integer Overflow Exception
Author Robert Wagner
Hi there,

I converted a BDE / FB 1.51 (Dialect 1) application to IBO 4.6.A / FB
1.53 (Dialect 3).

The application used one TDatabase and many TQuery objects in a
DataModule
which were converted to their TIOBDataBase and TIBOQuery equivalents.
The queries do nothing fancy, mainly selects and some parametrized
insert / update statements.

At first glance the application seemed to work as well as before, but
after a longer test period the exception 'Integer overflow' occurred
while
saving data to the database.

The exception always occurs in line 3242 in unit
IBODataSet.InternalGetFieldData at the following statement:

tmpData := pointer( longint( ARecBuf ) +
longint( SQLData ) -
longint( InternalDataset.Fields.RowBuffer ));

This function is called by TIBODataset.GetFieldData, line 3220 in
IBODataSet.

The exception does not always occur after saving the same amount of
data.
Sometimes it occurs after saving ten times, sometimes I can save fifty
or more times
data to the database, but sooner or later the exception occurs.


Does anybody have a clue, why the 'Integer Overflow' exception is raised
by IBODataSet?


I am using Delphi 5 and IBO 4.6.A. As already said, I use FB 1.53
(SuperServer). The
database is dialect 3.

If it helps I can provide a (madExcept) stack trace of the situation
when the exception is raised.



Many thanks for your help



Robert Wagner