用ADOQuery和ADOTable取Sql Server7.0中的Numeric类型,NUmeric的小数位数为6
当数值后的小数据点后的位数大于4位时,ADOQuery取出的数为0,比如:
数据库中为0.000023  用ADOQuery取出后值变成了0
各位大侠有没有遇到过这种情况呢,如何解决啊?
可不要告诉我把Numeric变成String类型,哪改的程序就太多了!

解决方案 »

  1.   

    我用的时候没这个问题; 用 mytable.fieldbyname('ddd').asfloat; 试试呢?
      

  2.   

    哦,我用的是float类型,不知道你为什么一定要用numberic类型呢?
      

  3.   

    数据库是别人设计的!mytable.fieldbyname('ddd').asfloat; 也不行的
      

  4.   

    这样就行
    sql.add('select round(xx,4) as xx');
    delph 里显示是4位
      

  5.   

    sorry 没看清题目。
    算我灌水,
    把库结构改成float,或round(xx,6) 看看呢!
      

  6.   

    ((TNumericField *)ADOQuery2.FieldByname('ddd').).DisplayFormat
    = '0.000000'