1、在编写三层程序时发现一个问题,找不到问题所在,请各位高手帮忙。
服务器端一个adodataset,其commandtext如下:
select wb.billno, wb.billname, wb.unit, wb.conprice,
  ww.conqty contqty, nvl(compqty,0), ww.conqty*wb.conprice contsum,
  nvl(compqty*wb.conprice,0) compsum,
  round(decode(ww.conqty,0,null,compqty*100/ww.conqty)) compercent,
  ww.billcode, ww.workcode, ww.projcode
from tncost.wbswork ww, tncost.workbills wb,
  (select billcode compbill, workcode compwork, projcode compproj,
     sum(conqty) compqty
   from tncost.wbsdaily
   group by billcode, workcode, projcode)
where ww.projcode = wb.projcode
  and ww.billcode = wb.billcode
  and ww.projcode = compproj(+)
  and ww.workcode = compwork(+)
  and ww.billcode = compbill(+) 
  and ww.projcode = :pprojcode
  and ww.workcode = :pworkcode
定义两个参数:pprojcode和pworkcode
客户端动态修改参数,然后显示再dbgrid中,发现有时有数据有时没有。但设置断点
得到参数值后在sql explorer中查询却有数据。
2、昨天还发现一问题,折腾半天才发现,大家注意:
在服务器端设置查询谋字段为其它两字段乘积,客户端显示时老是提示越界。察看clientdataset和dbgrid均无问题,后来在服务器端adoquery中将field添加后发现精度竟然自动设为225,改为32后问题解决。