Re: оПН SUSPEND
Вот чесслово, непонимаю, отчего флейм развели. Никто ведь неудивится, если процедура вызванная как SELECT FIRST 1 дальше первого SUSPEND непойдет. imho, просто надо понимать, что есть SUSPEND.
Re: оПН SUSPEND
Dmitry Yemanov пишет: "Serge Buzadzhy" <[EMAIL PROTECTED]> wrote: И какой тайный смысл такового действа? :) В процедуре мне нагляднее возвращать одно значение именно через EXECUTE RETURNING. Но иногда это значение нужно использовать в запросе, а там без SELECT никуда. В основном это случаи эмуляции PSQL-функций имеющемися средствами. Блажь, конечно, но тем не менее :-) Хозяин-барин конечно. :) Только надо бы где-то БОЛЬШИМИ БУКВАМИ написать, что при вызове через EXECUTE PROCEDURE дело дальше суспенда не пойдет. Sasha в этом вопросе не одинок, мне уже приходилось объяснять своим юзерам этот вопрос. Как по уму... может лучше было бы ввести понятие "тип вызова процедуры". 0 - может вызываться и через SELECT и через EXECUTE PROCEDURE 1 - только через SELECT 2 - только через EXECUTE PROCEDURE. Ну и соответственным образом ругаться в случаях 1 и 2 при попытке компиляции или попытке вызвать процедуру неподобающим образом. Это даст то что девелопер уже на создании процедуры будет вынужден обратить внимание на возможно неочевидный для него нюанс с работой суспенда. А лично ты будешь использовать тип 0 и работать по своей "блажи" в свое удовольствие. :) Удачи
Re: оПН SUSPEND
Dmitry Yemanov пишет: "sasha" <[EMAIL PROTECTED]> wrote: А можно запретить? Мне кажется что такую тонкость как поведение SUSPEND при вызове процедуры с помощью EXECUTE PROCEDURE, помнят очень не многие. Очень многие люди вызывают процедуры с SUSPEND через EXECUTE. Я, например :-) И какой тайный смысл такового действа? :)
Re: оПН SUSPEND
Dmitri Kuzmenko wrote: Dmitry Yemanov wrote: иже с ним) и содержащих SUSPEND исключительно "шоб було". Помню времена, когда на форумах рекомендовали в executable-процедурах всегда писать SUSPEND (на всякий пожарный случай). Так что наследие ой как велико. я рекомендовал. Но - при наличии выходных параметров. Другое дело, что как ни пиши, все равно найдется тот, кто неправильно поймет. И вструмячит по умолчанию прямо в оглуплятор популярного в народе инструмента: create procedure New_Procedure () returns () as begin /* Procedure Text */ suspend; end :-D -- Regards. Ded.
Re: оПН SUSPEND
Hello, Dmitry! Dmitry Yemanov wrote: иже с ним) и содержащих SUSPEND исключительно "шоб було". Помню времена, когда на форумах рекомендовали в executable-процедурах всегда писать SUSPEND (на всякий пожарный случай). Так что наследие ой как велико. я рекомендовал. Но - при наличии выходных параметров. Другое дело, что как ни пиши, все равно найдется тот, кто неправильно поймет. Что мы наблюдаем сплошь и рядом. -- Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34