使用SQL2K中建立一个表,并设立字段为Numeric(n,0)
用Delphi连接并显示数据后,有以下BUG:   当数据为正数时,显示正常,当数据为负数时,显示也为正数??!!!
   在Delphi6、7中都有此BUG,在Delphi5中则正确!!!

解决方案 »

  1.   

    我的机器:
    win2k pro(sp4) 
    delphi6 
    ADO(v2.7还没来得及装v2.8)程序:
    ADOTable, DataSource, DBGrid,显示正常呀。
      

  2.   

    是的,数据库是win2000,简体中文版
      

  3.   

    什么呀,打错了,是SQL Server 2000 简体中文版
      

  4.   

    sql2K,delphi7
    adotable,datasource,dbgrid,正常
      

  5.   

    win2k server(sp4)、pro(sp3)
      sql2k 简体中文版(sp3)
      delphi7.0、6.0数据库中建立一个表,字段为Numeric(n,0):
     即Numeric类型且小数位数为0 ADO连接时出错,BDE连接时正常!!
      楼上的可能使用的是BDE连接吧?
      

  6.   

    yanlls(yanlls):adoconnection,ADODataSet,datasource,dbgrid:错误啊!!!
      

  7.   

    没有,正常。
    win2000 server sp4
    delphi6 pack2
    sql server 2000 sp3
      

  8.   

    adoconnection,ADODataSet,datasource,dbgrid 正常
      

  9.   

    我不知道该说这是 bug 还是对 Delphi 太要求了...Delphi 看到 Numeric(n, 0) 把它视为 TIntegerField 了,但它真的不是个 Integer,它应该是个 TBCDField 的,有办法让它成为 TBCDField 吗? 我试不出来,自己 New Filed 设为 fkData 也没成功。所以,说 Delphi 在这儿有个 bug,或者说有个自作主张把没小数的 Numeric/Decimal 当 TIntegerField 吧。但容我说个建议:如果你明明知道是 Numeric(n, 0),那么你何不设成 int 或 smallint? 省空间吗?也没意义的,SQL Server 的数字系统里,int 是 4 bytes,smallint 是 2 bytes,然而 Numeric 只要是精确度在 1~9 就要 5 bytes 了。具体意义何在?