Subject | TIB_Components.pas Problem |
---|---|
Author | Hans |
Post date | 2005-11-22T04:51:06Z |
Hello Jason,
A fix for your next release ...
Boy, that took me a while, bald now, but I did find it :)
TIB_Components is throwing an address exception
in the procedure
TIB_Statement.SysRestoreParamValueLinks;
at
tmpStr[Length( tmpStr ) + SQLScale] := DecimalSeparator;
On a TIBOQuery with non persistant fields, tmpStr became '6' with a StrLen
of 1, which
of course with SQLScale = -2, will create an address exception
I changed it to
//Hans fix
// tmpStr[Length( tmpStr ) + SQLScale] := DecimalSeparator;
L := Length( tmpStr ) + SQLScale;
if L >= 1 then
tmpStr[L] := DecimalSeparator;
which cured the exception, but maybe another type of fix is preferred.
I haven't scanned all the IBO code if this coding is repeated somewhere
else.
Best Regards
Hans
A fix for your next release ...
Boy, that took me a while, bald now, but I did find it :)
TIB_Components is throwing an address exception
in the procedure
TIB_Statement.SysRestoreParamValueLinks;
at
tmpStr[Length( tmpStr ) + SQLScale] := DecimalSeparator;
On a TIBOQuery with non persistant fields, tmpStr became '6' with a StrLen
of 1, which
of course with SQLScale = -2, will create an address exception
I changed it to
//Hans fix
// tmpStr[Length( tmpStr ) + SQLScale] := DecimalSeparator;
L := Length( tmpStr ) + SQLScale;
if L >= 1 then
tmpStr[L] := DecimalSeparator;
which cured the exception, but maybe another type of fix is preferred.
I haven't scanned all the IBO code if this coding is repeated somewhere
else.
Best Regards
Hans