[V12功能解说] Sage X3中的计算容量溢出报错
* 本文由赛捷软件(上海)有限公司翻译完成,未经授权不得转载。如需转载,请先联系相应版块的版主取得授权。
在Sage X3中,有时在添加了定制的功能中会出现“计算容量溢出”的报错。这个报错消息不是描述性的,但通过分析随后的报错消息,就可以找出造成该问题的代码行。
以下是当你在Sage X3中看到计算容量溢出报错时的做法。
背景
当我们第一次看到这个报错时,我们认为计算容量溢出报错是一个账套设置中的内存问题,但X3会话有足够的可用内存。然后,我们认为这是一个数据问题,例如字符错误,但在运行了不同的SQL脚本后,我们未能识别到任何非法字符。
最后,我们意识到这是一个数据转换的问题。
我们最初也感到困惑,因为定制项正常运行了将近一年;在找到问题的原因后,我们可以看出以前没有发生过是因为没有超过32行。
这个报错与数据类型转换的问题有关。当一个较大的值被分配给一个数值较小类型的变量时,系统就会显示“计算容量溢出”的报错。
上面那行因为表的值大于整数而导致逻辑崩溃。
Shortint在-32768至+32767之间
在我们的案例中,当一张的行数超过32行,而下一行ID是33000时,这个对象就无法处理了,因为它是作为整数申报的。
解决方法
有一个视图的行的数据类型不正确;将数据类型从C改为L,就解决了这个问题。
我们花了更多的时间去挖掘这个报错的原因,我们希望通过本文节省了你的一些时间。 |