DELPHI7和ORACLE9采用ADO连接NUMBER(1)类型字段时候负数显示出来的都是正数,
跟踪了一下是ADODB.PAS文件里面的问题,你们遇到过吗?不知道算不算是ADO的BUG

解决方案 »

  1.   

    个人感觉是这里的问题4214行:
           ftSmallint:
              if vt = VT_UI1 then
                SmallInt(Buffer^) := Byte(cVal) else
                SmallInt(Buffer^) := iVal;
            ftWord:
              if vt = VT_UI1 then
                Word(Buffer^) := bVal else
                Word(Buffer^) := uiVal;
            ftAutoInc, ftInteger:
              Integer(Buffer^) := lVal;
      

  2.   

    我看了下,定长的数据类型精度小于10的时候,的确会把负数搞成正数,精度在10到最大值的时候,是没有问题的。睡觉了先,MSN上不去了。
      

  3.   

    其实从DELPHI代码分析看来并不仅仅限制于ORACLE数据库的,大家都可以试验一下,
    楼上的试验的就是SQL SERVER数据库
      

  4.   

    我用D6,无论是用OraOLEDB.Oracle或MSDAORA.1都没问题,不过我升级过ADO,将ado升到2.7以上试试?