环境  win7   delphi xe  update1数据库 oracle 9i查询sql 里有 PERI_YEAR_PRICE*PERI_ORD_QTY as PERI_TOTAL_PRICE字段类型  PERI_ORD_QTY  number(3)    PERI_YEAR_PRICE NUMBER(8,2)
fastreport 报表 再显示 PERI_TOTAL_PRICE 字段时 报  bcd overflow

解决方案 »

  1.   

    PERI_YEAR_PRICE*PERI_ORD_QTY 计算出来的值有超过99999999.99的值,因为你PERI_YEAR_PRICE NUMBER(8,2)定义了小数点左边最多只能显示8位,小数点右边最多显示2位。你把PERI_YEAR_PRICE NUMBER(8,2)改为PERI_YEAR_PRICE NUMBER(28,2),试试,或者将PERI_YEAR_PRICE*PERI_ORD_QTY as PERI_TOTAL_PRICE
    改为PERI_TOTAL_PRICE=Cast(PERI_YEAR_PRICE*PERI_ORD_QTY AS NUMERIC(28,2))--这是MS SQL的写法,oracle 的我不是很熟,你自己转换一下。
      

  2.   

    查询结果 放到了一个 clientdataset 里了莫非 cds 不能容纳 高精度 记录?大家测试下 
      

  3.   

    经过测试 这里的问题 应该是 clientdataset 不支持 oracle number  动态生成的字段  总提示 溢出改为mdb  sql server  均无问题 
    d7/xe 对oracle 这么烂 ?