我必须支持SqlServer2008 R2后端。在以下SQL语句中
lcSql = "SELECT field1, field2, 00000.00 as CalcField FROM myTable"
SqlExec(lnHandle,lcSql,"csrMyTable")
在以前的版本(包括2008)中,CalcField将返回为N(8,2),但对于R2,它将返回为N(4,2)。
我使用此字段进行进一步计算,然后将calc值填入CalcField。当CalcField太小而无法保存该值时,这就是一个问题。
我考虑过发布
lcSql = "SELECT field1, field2, 99999.99 as CalcField FROM myTable"
SqlExec(lnHandle,lcSql,"csrMyTable")
SELECT csrMyTable
REPLACE ALL CalcField WITH 0
我想知道是否有人有不同的解决方案。我在整个系统中使用它来报告,显示等等,因此需要进行相当大的改动。
谢谢!
答案 0 :(得分:2)
尝试使用CAST(0.00 AS N(8,2))作为CalcField
lcSql = "SELECT field1, field2, CAST(0.00 AS N(8,2)) as CalcField FROM myTable"
SqlExec(lnHandle,lcSql,"csrMyTable")