我正在使用ColdFusion 9.0.1和SQL Server 2005.當我使用<cfqueryparam>時,爲什麼ColdFusion會更改我的值?
我的數據庫中的列是名稱Points。它被設置爲數字(6,1)。
當我在SQL Server Management Studio中寫入一個查詢以放入類似1.2或5.5的值時,數字將正確存儲。當我下降到1.23時,它變爲1.2。當我下降到5.55時,它變爲5.6。這正是我所期望的。
UPDATE TableName
SET Points = 1.2
當我通過我的價值觀爲CFC,不使用CFQUERYPARAM,我得到確切的結果,如上所述。
當我將我的值傳遞給CFC使用CFQUERYPARAM時,我沒有得到我所期望的。當我像1.2或5.5這樣的數字下降時,數值會舍入到1.0或6.0。
UPDATE TableName
SET Points = <cfqueryparam type="CF_SQL_DECIMAL" value="#Points#">
我已將CFSQLTYPE更改爲CF_SQL_NUMERIC和CF_SQL_DECIMAL。不過,我無法正確保存數字。
當我在我的CFC中運行下面的查詢時,數字被存儲爲1.0。
UPDATE TableName
SET Points = <cfqueryparam type="CF_SQL_DECIMAL" value="1.23">
你能幫我弄清楚爲什麼這不符合我的預期嗎?
丹,謝謝你的回答。 –
感謝您將它標記爲接受,即使您在30秒內擊敗了我;)。 –
感謝@DanShort,提供簡單的解決方案。 – Anurag