Foxpro 不会在算术溢出时抛出错误
Foxpro not throwing error on arithmetic overflow
大家好
将 FoxPro table 转换为 MSSQL 时出现问题。
发生的事情是,在 FoxPro table 字段中输入了一个超出预期值的数字。 (在 10,2 数字字段中输入了一个大整数)但是尽管如此,FoxPro 仍然允许保存数据并显示在报告中。
但是,当尝试将所述数据转换为 MSSQL 时,它会导致错误并且无法获取所述值。
我知道保存号码时发生了错误,但我的问题是为什么 FoxPro 允许此错误通过甚至在该号码为 "wrong"
时显示
这是可能的,因为所有语言都有其特点,而这只是 Visual FoxPro 的一种。您假设它的行为方式与强类型编译语言(如 C)相同。这种行为可能可以追溯到 dBase 时代,并且为了兼容性而保留。
如果您尝试将值插入超出尺寸的数字字段,则规则为:
- 截断小数位并四舍五入字段的剩余小数部分。
- 如果该值不适合,则使用科学计数法存储字段内容。
- 如果值仍然不合适,用星号替换字段内容。
大家好 将 FoxPro table 转换为 MSSQL 时出现问题。
发生的事情是,在 FoxPro table 字段中输入了一个超出预期值的数字。 (在 10,2 数字字段中输入了一个大整数)但是尽管如此,FoxPro 仍然允许保存数据并显示在报告中。 但是,当尝试将所述数据转换为 MSSQL 时,它会导致错误并且无法获取所述值。
我知道保存号码时发生了错误,但我的问题是为什么 FoxPro 允许此错误通过甚至在该号码为 "wrong"
时显示这是可能的,因为所有语言都有其特点,而这只是 Visual FoxPro 的一种。您假设它的行为方式与强类型编译语言(如 C)相同。这种行为可能可以追溯到 dBase 时代,并且为了兼容性而保留。
如果您尝试将值插入超出尺寸的数字字段,则规则为:
- 截断小数位并四舍五入字段的剩余小数部分。
- 如果该值不适合,则使用科学计数法存储字段内容。
- 如果值仍然不合适,用星号替换字段内容。