Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > На входе либо null либо значение


Автор: WhiteSpirit 4.5.2007, 08:17
Здравствуйте,
столкнулся с следующей проблемой:

из программы в ХП передается значение (integer). Если значение не передается до делается полная выборка по запросу, если значение не пустое, то должно срабатывать условие в запросе

входящий параметр: in_param
...

Код

begin
  for
     select ...
     from ...
     where ... and
     where id = :in_param
-- вот здесь и загвоздка, если значение не передается то данные в результатах отсутствую, так как null, а желательно все данные вывести
...
end


Кончено можно через if(in_param is not null)... else внчале процедуры сделать, но тогда процедура становится громоздкой, так как необходимо дважды писать запрос (с параметром и без).

Подскажите плиз, как решается проблема?

Автор: Alex 4.5.2007, 08:19
where ((:in_param is null) or (id = :in_param))

Автор: WhiteSpirit 4.5.2007, 08:31
Спасибо огромное!!!
"+"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)