Foxtable(狐表)用户栏目专家坐堂 → [求助]关于表达式列,公式怎么老是出错?


  共有10123人关注过本帖树形打印复制链接

主题:[求助]关于表达式列,公式怎么老是出错?

帅哥哟,离线,有人找我吗?
胃小饱
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:3 积分:80 威望:0 精华:0 注册:2012/8/9 16:52:00
[求助]关于表达式列,公式怎么老是出错?  发帖心情 Post By:2012/8/9 17:16:00 [只看该作者]

下图是表结构,其中字段“节能补贴GS”是表达式列,拟设定的计算方式是“补帖标准×数量”、数据类型是“整数”:字段“节能补贴”数据类型也是“整数”。


图片点击可在新窗口打开查看此主题相关图片如下:yw1.jpg
图片点击可在新窗口打开查看
下图是字段属性:其中“数量”、“补贴标准”设为“短整型”,“节能补贴GS”因数值较大,设为整型,


图片点击可在新窗口打开查看此主题相关图片如下:yw2.jpg
图片点击可在新窗口打开查看
下图是字段“节能补贴GS”所设的公式。


图片点击可在新窗口打开查看此主题相关图片如下:yw3.jpg
图片点击可在新窗口打开查看

但是狐表直接给出错误信息:“Value is either too large or too small for Type 'Int16'.”
刚开始以为是计算结果会溢出,所以在“节能补贴GS”旁边又多加了一个数据列“节能补贴”,仍设为和表达式列相同的整型,然后,用SQL命令:

update {table} set 节能补贴=补帖标准×数量;

执行通过,无异常,这说明计算结果并未超出整型所允许的最大值。

 

于是我就不解了,为何数据列都可以装下的数值,表达式列就会出错?数据类型完全一致,计算结果也未溢出,到底哪错了?

[此贴子已经被作者于2012-8-9 17:17:00编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/8/9 17:22:00 [只看该作者]

我也不能理解,我测试正常。

你做个例子发上来,我来测试看看。


 回到顶部
帅哥哟,离线,有人找我吗?
muhua
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2012/8/9 18:04:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
胃小饱
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:3 积分:80 威望:0 精华:0 注册:2012/8/9 16:52:00
  发帖心情 Post By:2012/8/9 18:09:00 [只看该作者]

你是说把“补帖标准”  和 “ 数量”  的类型由短整型全改为整型?

我是因为这两个字段都用不到那么大的值,想节约内存,才故意这样设置的,

你既然这样说,那我改来试试。


 回到顶部
帅哥哟,离线,有人找我吗?
胃小饱
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:3 积分:80 威望:0 精华:0 注册:2012/8/9 16:52:00
  发帖心情 Post By:2012/8/9 18:33:00 [只看该作者]

按muhua的要求改了,现在把经过说一下:

先把“补帖标准”  和 “ 数量”  的类型由短整型全改为整型,然后在表达式列设置公式,成功。看来他的方法可行。

然后,由于数量这列不太可能是很大的数量,用短整型足矣,于是又把“数量”改回短整型,表达式列未报错。

最后,报着“锲而不舍”的精神,把“补贴标准”一列再改回短整型(因这列其实也不会有很大的数字),这次又出错了,错误提示跟以前是一样的。表达式列数据被清空。

只好把“补贴标准”一列再改回整型,再重新设置表达式列,这次成功了。

 

把经过说一下的目的是让开发人员注意,这个不知道算不算bug?


 回到顶部
帅哥哟,离线,有人找我吗?
muhua
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2012/8/10 8:15:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
woiz
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:139 积分:1021 威望:0 精华:0 注册:2012/1/18 14:40:00
  发帖心情 Post By:2012/8/10 12:27:00 [只看该作者]

用 cint([数量])* cint([补贴标准]) 应该能解决这个问题

 回到顶部