Как я могу присвоить нулевое значение параметру запроса в ColdFusion?

StackOverflow https://stackoverflow.com/questions/5006320

  •  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)))
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top