Как я могу присвоить нулевое значение параметру запроса в ColdFusion?
-
14-11-2019 - |
Вопрос
У меня есть таблица базы данных со столбцом int, который также может иметь значение null.Добавление целого числа в столбец — это нормально, но установка его обратного значения в ноль приводит к ошибке.Поскольку ColdFusion не поддерживает значения NULL, я обычно передаю значение как пустую строку:
local.myParam = "";
Однако это вызывает ошибку, которая ""
не имеет числового типа.
post.addParam(name="parentId", cfsqltype="CF_SQL_INTEGER", value=arguments.parentId);
Есть идеи, как обойти это ограничение?
Решение
Если вы хотите, чтобы пустая строка была отправлена как null
, вы можете сделать что-то вроде этого:
post.addParam(... null=len(trim(local.myParam)) ? false : true ...);
То есть, <cfqueryparam>
и addparam
поддержать null
аргумент в дополнение к остальным, например name
или cfsqltype
.Параметр null
как true
предоставит данное значение в базу данных как правильное значение NULL.Для удобства я использую тернарный условный оператор для встраивания истинного или ложного значения.Вы могли бы добиться того же самого, в старой школе, используя iif()
.
Другие советы
Я думаю, вы хотите это ...
null=yesNoFormat(NOT len(trim(local.myParam)))
.