我用VB去读取informix 数据库的数据时出现这样的一个问题:
读取的栏位类型是 decimal(6),比如现在里面的数据是 448.0  我用 rs("pmm40")
看到的数据是44 但是直接 Set MSHFlexGrid1.DataSource = rs 这样看到的值是440 这是什么问题啊? 真奇怪两种不同的做法有两种不同的值,而且都是错的。

解决方案 »

  1.   

    strsqlp = "select quantida  from iptb where numeroordem='" & Trim(rs("numeroordem")) & "'"
        rsp.Open strsqlp, conn, adOpenStatic
        If Not rsp.EOF Then
          str_pcount = rsp("quantida")
        End If
        rsp.Close
        Set rsp = Nothing
    这样单步调试 rsp("quantida") 这里的值是44 strsqlp = "select quantida  from iptb where numeroordem='" & Trim(rs("numeroordem")) & "'"
        rsp.Open strsqlp, conn, adOpenStatic
        If Not rsp.EOF Then
          Set MSHFlexGrid1.DataSource = rs 
        End If
        rsp.Close
        Set rsp = Nothing
    这样MSHFlexGrid1 显示出来的值是440这程好像问题啊!
      

  2.   

    cuizm(射天狼 http://www.j2soft.cn/) 没有好解决方法呢?
      

  3.   

    strsqlp = "select quantida  from iptb where numeroordem='" & Trim(rs("numeroordem")) & "'"
        rsp.Open strsqlp, conn, adOpenStatic
        If Not rsp.EOF Then
          Set MSHFlexGrid1.DataSource = rs       '这里估计是笔误, 应该是rsp吧
        End If
        rsp.Close                                '数据集被关闭了, MSHFlexGrid1.DataSource不可能会正常工作了
        Set rsp = Nothing
      

  4.   

    不好意思! 程序是这样的!
    strsqlp = "select quantida  from iptb where numeroordem='" & Trim(rs("numeroordem")) & "'"
        rsp.Open strsqlp, conn, adOpenStatic
        If Not rsp.EOF Then
          str_pcount = rsp("quantida")
        End If
        rsp.Close
        Set rsp = Nothing
    这样单步调试 rsp("quantida") 这里的值是44 strsqlp = "select quantida  from iptb where numeroordem='" & Trim(rs("numeroordem")) & "'"
        rsp.Open strsqlp, conn, adOpenStatic
        If Not rsp.EOF Then
          Set MSHFlexGrid1.DataSource = rsp
        End If
        rsp.Close
        Set rsp = Nothing
    这样MSHFlexGrid1 显示出来的值是440这程序好像没问题啊!
      

  5.   

    我在网上找了好多资料都是"用VB访问SYBASE数据库的时候,也出现过类似情况"但就是没看到解决办法!
      

  6.   

    好象没道理啊,一样的记录集,读出的结果不一致?
    只返回一条数据?会和变量str_pcount有关吗?不会是定长string吧?
    没有用过informix,不清楚怎么回事
      

  7.   

    是很奇怪啊!这跟变量str_pcount没关系的!
      

  8.   

    我还是这个疑惑: 数据集已经被关闭了, MSHFlexGrid1还能正常显示数据?
      

  9.   

    MSHFlexGrid确实可以正常显示数据。
    datagrid就不行了。
    可能是两个控件在实现绑定方法时不同。
    set datagrid.datasource=rs.clone()就可以了
    而MSHFlexGrid似乎已经做了相似的工作。
    至于数据的问题,没有用过informix,不清楚。