在我的系统上,在Firebird 2.5到3.0迁移之后,许多报告和其他功能开始引起问题,表明预期的是整数,而当前的功能是LargeInt
。我看了一下,看到3.0中的计数进行了一些搜索返回bigInt
列,而在2.5中,它返回了整数列。
要解决我所知道的方式,我将不得不对所有给出错误,测试和工作的所有内容进行演员,但这是一个很大的系统,它将提供很多工作。
有人知道在火鸟本身中解决这个问题吗?一些配置,或其他?
没有配置;火鸟3发行说明只说:
COUNT()
聚合器现在返回其结果为BIGINT
而不是INTEGER
。
您要么需要在查询中明确应用铸件,要么在您的代码中应用铸件,或者查看数据访问库是否可以明确请求整数,而不仅仅是动态类型。例如,在Java世界中,JDBC API具有明确的getInt
,只要值适合32位整数。
BIGINT
。我使用unidac,对于解决方案,我使用了地图规则(数据类型映射)。
在任何Delphi组件中使用SQL中使用Typecast,并且可以。例如wite:
选择铸造(count(*)作为整数)br从 ...
而不是
选择计数(*)br从 ...