在 VB6 中,来自 sql 查询的 ADODB.Recordset 值不返回小数

问题描述 投票:0回答:1

我正在使用 ODBC 从 vb6 中的 db2 获取数据。连接和设置都没有问题,但是返回的数据有问题。

我的记录集中的字段都向下舍入为整数,因此如果 db 列的值为 0.99,它会返回 0,这不太好。

Microsoft Query 中的相同查询会产生正确的值(带小数)。

这是代码的相关部分:

Set objCommand As New ADODB.Command
Set recordSet As New ADODB.Recordset

sqlQuery= "Select f2scop Price from database.mpline  where ibsuno='" & Order & "' order by ibpuno, ibpnli"
                   

With objCommand
   .ActiveConnection = ConnectDB2
   .CommandType = adCmdText
   .CommandText = sqlQuery
End With
                
With recordSet
   .CursorType = adOpenStatic
   .CursorLocation = adUseClient
   .LockType = adLockOptimistic
   .Open objCommand
End With

myVariable.value = recordSet("Price")

调试 recordSet("Price").OriginalValue 返回相同的向下舍入值。 recordSet("Price"). precision、.numericscale 和 .type 返回接受小数的字段的预期结果。

对于记录集、ODBC、sql 查询或其他什么我可以做些什么?

感谢任何和所有帮助!

PS:我用一种绕过我的问题的方法来回答。

sql db2 vb6 adodb recordset
1个回答
0
投票

我已经想出了解决这个问题的方法。

在sql查询中,我将数据乘以100,然后在将值分配给变量时,将其除以100。

像这样:

sqlQuery =“选择(f2scop * 100)来自database.mpline的价格,其中ibsuno ='”&Order&“' order by ibpuno,ibpnli”

myVariable.value = recordSet("价格") / 100

这不是一个解决方案,但它绕过了问题,这对我来说已经足够了。

这个答案可能对某些人不适用,因此我们始终感谢您提供更多帮助! 谢谢

© www.soinside.com 2019 - 2024. All rights reserved.