如何为ColdFusion中的查询参数指定空值?

Moh*_*mad 4 coldfusion null param

我有一个带有int列的数据库表,也可以为null.在列中添加int很好,但将其设置为null会导致错误.由于ColdFusion不支持空值,我通常将该值作为空字符串传递:

local.myParam = "";
Run Code Online (Sandbox Code Playgroud)

这会导致错误,但""不是数字类型.

post.addParam(name="parentId", cfsqltype="CF_SQL_INTEGER", value=arguments.parentId);
Run Code Online (Sandbox Code Playgroud)

任何想法我如何解决这个限制?

Ken*_*ler 7

如果您希望将空字符串发送为null,则可以执行以下操作:

post.addParam(... null=len(trim(local.myParam)) ? false : true ...);
Run Code Online (Sandbox Code Playgroud)

这就是说,<cfqueryparam>并且addparam支持null除了参数传递给别人喜欢namecfsqltype.设置nulltrue将为数据库提供给定值作为适当的null.为方便起见,我使用三元条件运算符来内联true或false值.通过使用,你可以实现同样的目标,老派iif().


Ric*_*ert 5

我想你想要这个...

null=yesNoFormat(NOT len(trim(local.myParam)))
Run Code Online (Sandbox Code Playgroud)