2011-02-15 54 views
4

我有一個int列也可以爲null的數據庫表。將int添加到列是好的,但將其設置爲null會導致錯誤。由於ColdFusion的不支持空值,我通常傳遞值作爲空字符串:然而如何在ColdFusion中將空值分配給查詢參數?

local.myParam = ""; 

這將導致一個錯誤,即是""類型數值的不。

post.addParam(name="parentId", cfsqltype="CF_SQL_INTEGER", value=arguments.parentId); 

任何想法如何解決這個限制?

回答

7

如果你想空字符串發送成null,你可以做這樣的事情:

post.addParam(... null=len(trim(local.myParam)) ? false : true ...); 

這就是說,<cfqueryparam>addparam支持null參數除了像其他人一樣namecfsqltype。將null設置爲true會將給定的值作爲適當的null提供給數據庫。爲了方便起見,我使用三元條件運算符來內聯true或false值。你可以通過使用iif()來實現同樣的事情,老派。

+0

謝謝。在這裏它是null它自己的參數...所以addParam(name =「foo」,null = len(...),cfsqltype =「CF_SQL_INTEGER」,value = arguments.parentId)?? – Mohamad 2011-02-15 16:39:20

4

我想你想這...

null=yesNoFormat(NOT len(trim(local.myParam))) 
相關問題