提问人:Filipe Lopes 提问时间:10/20/2023 最后编辑:GSergFilipe Lopes 更新时间:10/24/2023 访问量:73
在 VB6 中,ADODB.sql 查询中的记录集值不返回小数
In VB6, ADODB.Recordset values from sql query not returning decimals
问:
我正在使用 ODBC 从 VB6 中的 db2 获取数据。连接和设置正常,但返回的数据有问题。
我的记录集中的字段都向下舍入为整数,因此,如果 db 列的 0.99,则返回为 0,这并不好。
Microsoft 查询中的相同查询会生成带有小数的正确值。
这是代码的相关部分:
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:我用一种解决我问题的方法来回答。
答:
0赞
Filipe Lopes
10/24/2023
#1
我已经为这个问题想出了一个解决方法。
在 sql 查询中,我将数据乘以 100,然后在为变量赋值时将其除以 100。
这样:
sqlQuery= “Select (f2scop * 100) Price from database.mpline where ibsuno='” & Order & “' order by ibpuno, ibpnli”
myVariable.value = recordSet(“价格”) / 100
这不是一个解决方案,但它绕过了问题,这对我来说已经足够了。
可能有人这个答案不适用,所以总是感谢更多的帮助! 感谢
评论
CAST()