VFP spt查询SqlServer 2008 R2

时间:2011-10-26 18:52:55

标签: sql-server-2008-r2 visual-foxpro

我必须支持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

我想知道是否有人有不同的解决方案。我在整个系统中使用它来报告,显示等等,因此需要进行相当大的改动。

谢谢!

1 个答案:

答案 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")