#sql #tsql #coldfusion
#sql #tsql #coldfusion
Вопрос:
Я использую SQL Server 2008 и ColdFusion 9.1.2.
У меня есть запрос, который содержит целочисленное поле. Мне нужно ввести целое число или нуль, а не ноль.
Прямо сейчас, это то, что у меня есть:
<cfif LOCAL.MyValue eq "">
NULL ,
<cfelse>
<cfqueryparam cfsqltype="cf_sql_numeric" value="#LOCAL.MyValue#">,
</cfif>
Каков наилучший, или наиболее эффективный, или наиболее краткий способ закодировать это:
Ответ №1:
Все в одной строке:
<cfqueryparam cfsqltype="cf_sql_numeric" value="#LOCAL.MyValue#" null="#NOT len(LOCAL.MyValue)#">
Если оно имеет длину, оно установит значение null = false.
Если у него нет длины, он установит null= true и проигнорирует то, что находится в value
атрибуте.
Вы также можете захотеть добавить функцию trim() внутри функции len() (например, если пользователь может ввести пробел).
Комментарии:
1. Я не видел этого раньше, но это ИМЕННО то, что я искал. Итак, нулевая часть просто проверяет условие?
2. Вы также могли бы сделать
null="#val(LOCAL.MyValue) EQ 0#"
, который мог бы быть более читаемым и, кажется, немного лучше соответствует вашим условиям.