返回列表 发帖

[V12功能解说] Sage X3中的计算容量溢出报错

* 本文由赛捷软件(上海)有限公司翻译完成,未经授权不得转载。如需转载,请先联系相应版块的版主取得授权。


在Sage X3中,有时在添加了定制的功能中会出现“计算容量溢出”的报错。这个报错消息不是描述性的,但通过分析随后的报错消息,就可以找出造成该问题的代码行。


以下是当你在Sage X3中看到计算容量溢出报错时的做法。

背景

当我们第一次看到这个报错时,我们认为计算容量溢出报错是一个账套设置中的内存问题,但X3会话有足够的可用内存。然后,我们认为这是一个数据问题,例如字符错误,但在运行了不同的SQL脚本后,我们未能识别到任何非法字符。

最后,我们意识到这是一个数据转换的问题。

我们最初也感到困惑,因为定制项正常运行了将近一年;在找到问题的原因后,我们可以看出以前没有发生过是因为没有超过32行。


这个报错与数据类型转换的问题有关。当一个较大的值被分配给一个数值较小类型的变量时,系统就会显示“计算容量溢出”的报错。



上面那行因为表的值大于整数而导致逻辑崩溃。

Shortint在-32768至+32767之间


在我们的案例中,当一张的行数超过32行,而下一行ID是33000时,这个对象就无法处理了,因为它是作为整数申报的。


解决方法

有一个视图的行的数据类型不正确;将数据类型从C改为L,就解决了这个问题。


我们花了更多的时间去挖掘这个报错的原因,我们希望通过本文节省了你的一些时间。
附件: 您需要登录才可以下载或查看附件。没有帐号?申请用户

返回列表