Как я могу присвоить нулевое значение параметру запроса в ColdFusion? - PullRequest
4 голосов
/ 15 февраля 2011

У меня есть таблица базы данных со столбцом int, который также может быть нулевым.Добавление int в столбец - это хорошо, но установка его на ноль вызывает ошибку.Поскольку ColdFusion не поддерживает нулевые значения, я обычно передаю значение в виде пустой строки:

local.myParam = "";

Однако это приводит к ошибке, что "" не имеет числового типа.

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

Есть идеи, как мне обойти это ограничение?

Ответы [ 2 ]

7 голосов
/ 15 февраля 2011

Если вы хотите, чтобы пустая строка отправлялась как null, вы можете сделать что-то вроде этого:

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

То есть <cfqueryparam> и addparam поддерживают nullаргумент в дополнение к другим, как name или cfsqltype.Установка null в качестве true обеспечит заданное значение для базы данных как правильный нуль.Для удобства я использую троичный условный оператор для вставки истинного или ложного значения.Вы можете добиться того же, старая школа, используя iif().

4 голосов
/ 15 февраля 2011

Я думаю, ты хочешь этого ...

null=yesNoFormat(NOT len(trim(local.myParam)))
...