2011-10-26 104 views
0

我必须支持SqlServer2008 R2后端。在以前的版本中下面的SQL语句VFP spt查询SqlServer 2008 R2

lcSql = "SELECT field1, field2, 00000.00 as CalcField FROM myTable" 
SqlExec(lnHandle,lcSql,"csrMyTable") 

(包括2008年)CalcField将返回为N(8,2),但与R2则返回为N(4,2)。

我使用此字段进行进一步计算,然后将计算值填入CalcField。当CalcField太小而无法保存该值时,现在这是一个问题。

我已考虑发出

lcSql = "SELECT field1, field2, 99999.99 as CalcField FROM myTable" 
SqlExec(lnHandle,lcSql,"csrMyTable") 

SELECT csrMyTable 
REPLACE ALL CalcField WITH 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") 
+0

超 - 伟大工程! –