基于Midas的三层结构程序中,DBGrid中使用函数的字段显示:BCD overflow,直接读取的字段能够正常显示,什么问题

时间:2022-09-29 14:20:39
写了一个基于Midas的三层结构程序,数据库为Oracle,前台使用Delphi7,通过TClientDataSet.CommandText:=sqlstr获取数据集;sqlstr为SQL语句,出现的问题是sqlstr中只要出现函数,比如sum(datafield),(datafield1+datafield2)或者round(datafield,1)均出现"Value of 'datafield'is out of range"错误,使用两层结构"select sun(datafield) from tablename"肯定不报错,三层结构中如果不使用函数,只用"select datafield from tablename"也不报错,(注:以上所提到字段均是Number行),请教各位大虾,什么原因,如何修改?
另外,如果直接运行EXR文件,不报错,但是DBGrid中使用函数的字段显示:BCD overflow,其他直接读取的字段能够正常显示

6 个解决方案

#1


我没有遇到你这样的问题,不过我是用的delphi5

#2


以前使用C++Builder5.5编写基于Midas的三层结构程序,同样出现这个问题.请问高手什么原因.

#3


像你这样用过,但没遇到你这样的问题,我刚才做了一个例子,也没问题!
是不是环境设置的问题呀?

#4


取个别名就没有问题了
select (datafield1+datafield2) 别名 from ……

#5


应该不会是你的字段的长度不对啊!

#6


还是你的程序有问题。和数据库没有关系。

#1


我没有遇到你这样的问题,不过我是用的delphi5

#2


以前使用C++Builder5.5编写基于Midas的三层结构程序,同样出现这个问题.请问高手什么原因.

#3


像你这样用过,但没遇到你这样的问题,我刚才做了一个例子,也没问题!
是不是环境设置的问题呀?

#4


取个别名就没有问题了
select (datafield1+datafield2) 别名 from ……

#5


应该不会是你的字段的长度不对啊!

#6


还是你的程序有问题。和数据库没有关系。