2011-10-26 141 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

超 - 偉大工程! –