4

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

local.myParam = "";

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

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

有什么想法可以解决这个限制吗?

4

2 回答 2

7

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

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

也就是说,除了像or之外,<cfqueryparam>addparam支持一个论点。设置as会将给定值作为适当的 null 提供给数据库。为方便起见,我使用三元条件运算符来内联真或假值。您可以通过使用.nullnamecfsqltypenulltrueiif()

于 2011-02-15T16:29:13.680 回答
4

我想你想要这个...

null=yesNoFormat(NOT len(trim(local.myParam)))
于 2011-02-15T16:59:50.050 回答