我正在使用 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查询中,我将数据乘以100,然后在将值分配给变量时,将其除以100。
像这样:
sqlQuery =“选择(f2scop * 100)来自database.mpline的价格,其中ibsuno ='”&Order&“' order by ibpuno,ibpnli”
myVariable.value = recordSet("价格") / 100
这不是一个解决方案,但它绕过了问题,这对我来说已经足够了。
这个答案可能对某些人不适用,因此我们始终感谢您提供更多帮助! 谢谢