我有一个带有int列的数据库表,也可以为null。在列中添加int很好,但将其设置为null会导致错误。由于ColdFusion不支持空值,我通常将该值作为空字符串传递:
local.myParam = "";
这会导致错误,""
不是数字类型。
post.addParam(name="parentId", cfsqltype="CF_SQL_INTEGER", value=arguments.parentId);
我是如何解决这个限制的?
答案 0 :(得分:7)
如果您希望将空字符串作为null
发送,您可以执行以下操作:
post.addParam(... null=len(trim(local.myParam)) ? false : true ...);
也就是说,除<cfqueryparam>
或addparam
等其他参数外,null
和name
支持cfsqltype
参数。将null
设置为true
将为数据库提供给定值作为正确的null。为方便起见,我使用三元条件运算符来内联true或false值。你可以使用iif()
来实现同样的目标,即旧学校。
答案 1 :(得分:4)
我想你想要这个...
null=yesNoFormat(NOT len(trim(local.myParam)))