我用VB去读取informix 数据库的数据时出现这样的一个问题:
读取的栏位类型是 decimal(6),比如现在里面的数据是 448.0 我用 rs("pmm40")
看到的数据是44 但是直接 Set MSHFlexGrid1.DataSource = rs 这样看到的值是440 这是什么问题啊? 真奇怪两种不同的做法有两种不同的值,而且都是错的。
读取的栏位类型是 decimal(6),比如现在里面的数据是 448.0 我用 rs("pmm40")
看到的数据是44 但是直接 Set MSHFlexGrid1.DataSource = rs 这样看到的值是440 这是什么问题啊? 真奇怪两种不同的做法有两种不同的值,而且都是错的。
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这程好像问题啊!
rsp.Open strsqlp, conn, adOpenStatic
If Not rsp.EOF Then
Set MSHFlexGrid1.DataSource = rs '这里估计是笔误, 应该是rsp吧
End If
rsp.Close '数据集被关闭了, MSHFlexGrid1.DataSource不可能会正常工作了
Set rsp = Nothing
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这程序好像没问题啊!
只返回一条数据?会和变量str_pcount有关吗?不会是定长string吧?
没有用过informix,不清楚怎么回事
datagrid就不行了。
可能是两个控件在实现绑定方法时不同。
set datagrid.datasource=rs.clone()就可以了
而MSHFlexGrid似乎已经做了相似的工作。
至于数据的问题,没有用过informix,不清楚。