2011-12-20 51 views
0

我試圖更新從數據庫中檢索的表單域,然後用任何更新的信息重新插入它們。COLDFUSION-只接受CFSQLTYPE的數值CF_SQL_TINYINT

到目前爲止,似乎所有人都在經歷,但是我不斷收到錯誤: 錯誤執行數據庫查詢。

無效的數據2,請輸入有效的付款期限。對於CFSQLTYPE CF_SQL_TINYINT,僅接受數值。

該字段是數字,甚至當我不更新從數據庫中最初繪製出來的東西時,它不會再回來!

在檢索頁面:

Payment Terms: <INPUT TYPE="text" NAME="PaymentTerms" VALUE="#PaymentTerms#" SIZE="4" MAXLENGTH="4"> 

在更新頁面:

<CFUPDATE DATASOURCE="XXXXX" TABLENAME="Payments" FORMFIELDS="PaymentTerms, Notes"> 

任何想法?

+0

您在查詢中使用了cfqueryparam標籤嗎?當你得到錯誤時,你試圖插入字段中的什麼值?你可以發佈查詢嗎? – Jason 2011-12-20 10:01:09

+0

嗨,沒有我不使用CFquery param標籤,因爲我不是100%在哪裏包括它們?我現在會更新上面的內容。 – ez007 2011-12-20 10:02:35

+0

您的FORMFIELDS列表中是否包含表主鍵字段? – 2011-12-20 11:20:05

回答

1

也許PaymentTerms爲空字段,而在CF中,null =空字符串,因此它不能用空字符串更新數字字段。

要麼停止使用CFUPDATE,要麼讓FORMFIELDS動態構建,以便不包含空字段,但這可能不是您想要的,因爲您可能真的想將該字段更新爲空。

開始使用<cfquery><cfqueryparam>或ORM,將更新值正確處理爲null。