2011-02-15 65 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))) 
相关问题