Subject Re: error with RecordCount and Int64
Author achidan

> I'm using firebird 1.0 and migrated from Delphi 5.0 to Delphi 6.0 and
> at the same time from IBObjects 3.6 to IBObjects 4.2c. Since then I
> have a problem with RecordCount (I guess it's record count).
> I get the following message:
> arithmetic exception, numeric overflow, or string truncation
> Cannot transliterate character between character sets
> In SQL Trace I find that it is cause by a statement like this:
> SELECT COUNT( DISTINCT ParamID || '.zZz.' || ParamName || '.zZz.' ||
> ParamDesc || '.zZz.' || ParamTypeCd )
> FROM Param join ParamType on Param.ParamTypeID = ParamType.ParamTypeID
> join ActType on Param.ActTypeID = ActType.ActTypeID WHERE ActTypeCd
> = ? /* pActTypeCd */
> My database and connection is with Character set ISO8856_1.

I did some more investigation on that problem. First some additional
information about the fields:
ParamID: Numeric(18, 0)
ParamName: VarChar(10) ISO8856_1
ParamDesc: VarChar(40) ISO8856_1

I get an error with the following statement:

I don't get an error with the following statements:
SELECT ParamID || ParamDesc FROM Param (without Distinct)
SELECT DISTINCT ParamID || ParamName FROM Param (with VarChar(10) than
SELECT DISTINCT ParamDesc || ParamID FROM Param (different field order)
SELECT DISTINCT ParamName || ParamDesc FROM Param (only varchar fields)

For me it rather seems to be an Firebird bug. So I will post similar
message to IBSupport. But I guess it will take a long time till
Firebird has fixed that problem. So I'd be still interested in an
workaround in IBObjects because the first statement is "autocreated"
by IBObjects.