Привет.
Не помню подымался ли вопрос, поэтому спрошу. Можно ли запретить SUSPEND
в процедурах, которые не имеют выходных параметров? Сегодня пару часов
мучались из-за того что в такой процедуре каким-то образом очутился этот
SUSPEND и процедура не выполнялась до конца. По идее использование
sasha wrote:
Сегодня пару часов
мучались из-за того что в такой процедуре каким-то образом очутился этот
SUSPEND и процедура не выполнялась до конца.
А прикинь что будет если туда вдруг затесается EXIT или в структуре
IF-ов кто-то облажается... Расслабься, в двойке уже запретили
Расслабься, в двойке уже запретили.
В какой это? Я только двойками и пользуюсь и оно работает.
sasha wrote:
Расслабься, в двойке уже запретили.
В какой это? Я только двойками и пользуюсь и оно работает.
Ну может только собрались, мне-то пофиг... Пошукай тут поиском, ДЕ
вещал недавно на эту тему.
--
Regards. Ded.
Вещал я на другую тему. SUSPEND никто не запрещал.
А можно запретить? Мне кажется что такую тонкость как поведение SUSPEND
при вызове процедуры с помощью EXECUTE PROCEDURE, помнят очень не
многие. Фактически это потенциальная возможность провести ночь наедине с
отладчиком.
sasha wrote:
Фактически это потенциальная возможность провести ночь наедине с
отладчиком.
Если рассматривать с этой точки зрения, то предлагаю запретить в
хранимых процедурах:
1. Условные операторы - запросто можно накрутить лишнего.
2. Переменные - легко можно забыть инициализировать.
Если рассматривать с этой точки зрения, то предлагаю запретить в
хранимых процедурах:
А зачем тогда было запрещать сортировку по невыбираемым полям в запросах
с группировкой? И так бы прокатило...
Очень многие люди вызывают процедуры с SUSPEND через EXECUTE. Я, например
:-)
Процедуры без выходных параметров у тебя с SUSPEND? Я ведь токо про
них... Если да, то почему не EXIT ?
sasha wrote:
А зачем тогда было запрещать сортировку по невыбираемым полям в запросах
с группировкой? И так бы прокатило...
Не-а. Вот это-то как раз не прокатило бы в общем случае.
--
Regards. Ded.
А зачем тогда было запрещать сортировку по невыбираемым полям в запросах с
группировкой? И так бы прокатило...
по личной просьбе оптимизатора - его тошнило
PS +:)
--
Булычев Алексей
http://www.stella-npf.ru
Не-а. Вот это-то как раз не прокатило бы в общем случае.
Но ведь до 2.0 так было...
Вобще сами посудите. Где такое есть чтобы оператор менял своё поведение
в зависимости от способа вызова подпрограммы? Я не теоретик в области
языков программирования, но чую что так не должно быть...
Oleg LOA wrote:
Объясни как "неопределённое поведение" может менять своё поведение в
зависиости от чего-го там?
Мона я? Через фазу луны :-D
--
Regards. Ded.
запретить
использование SUSPEND, т.к. для этого предназначен EXIT.
Вот, к стати, интересная аналогия на C#:
void Button1Click(object sender, System.EventArgs e)
{
SuspendTest();
}
public IEnumerable SuspendTest()
{
MessageBox.Show("Start");
for
поменяно и что
люди имели вопросы.
Собственно вопрос я задал с намёком на то: почему сортировку запретить
можно, а SUSPEND в процедуре без параметров нельзя? Надо выйти из
процедуры - пользуй EXIT.
Да не проблема запретить. Но чем это тебе поможет, если выходные параметры
таки нужны?
Ну если нужны - это другой вопрос. Я бы вобще запретил вызывать
процедуры через EXECUTE PROCEDURE, если в них есть SUSPEND. Но ты ведь
сам сказал что лично такими пользуешься. Поэтому я не знаю что
Hello, Dmitry!
Dmitry Yemanov wrote:
иже с ним) и содержащих SUSPEND исключительно "шоб було". Помню времена,
когда на форумах рекомендовали в executable-процедурах всегда писать SUSPEND
(на всякий пожарный случай). Так что наследие ой как велико.
я рекомендовал. Но - при наличи
Дело не столько во мне, сколько в куче процедур, сгенеренных IBExpert-ом (и
иже с ним) и содержащих SUSPEND исключительно "шоб було". Помню времена,
когда на форумах рекомендовали в executable-процедурах всегда писать SUSPEND
(на всякий пожарный случай). Так что наследие ой как вел
Dmitri Kuzmenko wrote:
Dmitry Yemanov wrote:
иже с ним) и содержащих SUSPEND исключительно "шоб було". Помню
времена, когда на форумах рекомендовали в executable-процедурах всегда
писать SUSPEND (на всякий пожарный случай). Так что наследие ой как
велико.
я рекомендовал
Так а зачем версию сервера менять если наследование есть? Хочешь новую
версию сервера - переделывай. Не хочешь переделывать - сиди на старой
версии...
Мы, к примеру, не можем перейти на .NET 2.0 с .NET 1.1 т.к. очень много
изменений надо делать и стандартный майкрософтовский конвертер не
спра
Hello,
sasha said the following on 07.09.2006 16:33:
> Мы, к примеру, не можем перейти на .NET 2.0 с .NET 1.1 т.к. очень много
> изменений надо делать и стандартный майкрософтовский конвертер не
> справляется.
А что именно не получилось? Мы все что хотели - сразу перевели на 2.0.
--
Oleg
А что именно не получилось? Мы все что хотели - сразу перевели на 2.0.
Не помню что, но после конвертации было несколько сотен ошибок, которые
править было некогда. Решили пока на 1.1 остаться. Думаю к новому году
таки перейдём...
sasha wrote:
> > Да не проблема запретить. Но чем это тебе поможет, если выходные параметры
> > таки нужны?
>
> Ну если нужны - это другой вопрос. Я бы вобще запретил вызывать
> процедуры через EXECUTE PROCEDURE, если в них есть SUSPEND. Но ты ведь
> сам сказал что
Dmitry Yemanov пишет:
"sasha" <[EMAIL PROTECTED]> wrote:
А можно запретить? Мне кажется что такую тонкость как поведение SUSPEND
при вызове процедуры с помощью EXECUTE PROCEDURE, помнят очень не многие.
Очень многие люди вызывают процедуры с SUSPEND через EXECUTE. Я, наприме
Dmitry Yemanov пишет:
"Serge Buzadzhy" <[EMAIL PROTECTED]> wrote:
И какой тайный смысл такового действа? :)
В процедуре мне нагляднее возвращать одно значение именно через EXECUTE
RETURNING. Но иногда это значение нужно использовать в запросе, а там без
SELECT никуда. В основном это случаи
Вот чесслово, непонимаю, отчего флейм развели.
Никто ведь неудивится, если процедура вызванная как
SELECT FIRST 1
дальше первого SUSPEND непойдет.
imho, просто надо понимать, что есть SUSPEND.
hi all
Подскажите плз., обязана ли хранимая процедура
возвращать строки в том же порядке, в котором
вызывается suspend?
select distinct id from SP?
если б меня distinct устроил, я б и не спрашивал.
хранимка будет join'иться с другими таблицами, боюсь там везде дубликаты
пойдут,
а пихать в каждый запрос с этой хранимкой distinct ой как неохота.
А ты запхни SP унутрь другой SP, которая distinct делать будет.
Wi
Андрей Могильный пишет:
select distinct id from SP?
если б меня distinct устроил, я б и не спрашивал.
Постановка вопроса страдает, вестимо...
"Тяжело мысли угадывать, когда вы на двух языках сразу думаете" (c)
Можешь, конечно, обойдись временной таблицей, как и сам говорил. А если
не хочется
> Андрей Могильный пишет:
>> select distinct id from SP?
>>
>> если б меня distinct устроил, я б и не спрашивал.
> Постановка вопроса страдает, вестимо...
> "Тяжело мысли угадывать, когда вы на двух языках сразу думаете" (c)
>
> Можешь, конечно, обойдись временной таблицей, как и сам говорил. А ес
Hello,
Андрей Могильный said the following on 29.09.2006 12:57:
> Пишу селективную рекурсивную хранимку обхода дерева (даже графа),
> /*Вот здесь хотелось бы проверить, а не был ли уже этот ID ранее выдан
> наружу при других рекурсивных вызовах этой же хранимки*/
Если fb2 - сделай для этого к
Hello, Андрей!
Андрей Могильный wrote:
Пишу селективную рекурсивную хранимку обхода дерева (даже графа),
на выходе таблица с одним полем - некий ID. Так вот при обходе возможен
выход
дубликатов, т.е. те ID уже попали в SUSPEND ранее.
Можно ли как-то узнать, что уже отSUSPENDилось? ;)
нет
Андрей Могильный wrote:
если б меня distinct устроил, я б и не спрашивал.
хранимка будет join'иться с другими таблицами, боюсь там везде дубликаты
пойдут,
а пихать в каждый запрос с этой хранимкой distinct ой как неохота.
А нельзя ли так преобразовать этот граф, чтобы исключить возможность
по
"Konstantin R. Beliaev" <[EMAIL PROTECTED]> wrote in message news:[EMAIL
PROTECTED]
>
> Андрей Могильный wrote:
>> если б меня distinct устроил, я б и не спрашивал.
>> хранимка будет join'иться с другими таблицами, боюсь там везде дубликаты
>> пойдут,
>> а пихать в каждый запрос с этой хранимкой
Hello, Rust!
RUST wrote:
Подскажите плз., обязана ли хранимая процедура
возвращать строки в том же порядке, в котором
вызывается suspend?
может она и не обязана, но по другому не может.
--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34
пределения SUSPEND по BLR.
---
Способ тривиален - ищется blr_send.
см Файл IscProceduresResultSet.cpp /
IscProceduresResultSet::canSelectFromProcedure
---
Правда реализация весьма странная -
сначала формируется текстовое
представление BLR-кода, потом ищется
строка "blr_s
"Ded" <[EMAIL PROTECTED]> wrote:
>
> Ãó ìîæåò òîëüêî ñîáðà ëèñü, ìÃÃ¥-òî ïîôèã... Ãîøóêà é òóò ïîèñêîì, ÃÃ
âåùà ë
> Ãåäà âÃî Ãà ýòó òåìó.
Ãåùà ë ÿ Ãà äðóãóþ òåìó. SUSPEND Ãèêòî ÃÃ¥
"sasha" <[EMAIL PROTECTED]> wrote:
>
> à ìîæÃî çà ïðåòèòü? ÃÃÃ¥ êà æåòñÿ ÷òî òà êóþ òîÃêîñòü êà ê ïîâåäåÃèå SUSPEND
> ïðè âûçîâå ïðîöåäóðû ñ ïîìîùüþ EXECUTE PROCEDURE, ïîìÃÿò î÷åÃü ÃÃ¥
"sasha" <[EMAIL PROTECTED]> wrote:
>
> à SUSPEND â ïðîöåäóðå áåç ïà ðà ìåòðîâ Ãåëüçÿ? Ãà äî âûéòè èç ïðîöåäóðû -
> ïîëüçóé EXIT.
Ãà ÃÃ¥ ïðîáëåìà çà ïðåòèòü. Ãî ÷åì ýòî òåáå ïîìîÃ
"sasha" <[EMAIL PROTECTED]> wrote:
>
> à áû âîáùå çà ïðåòèë âûçûâà òü ïðîöåäóðû ÷åðåç EXECUTE PROCEDURE, åñëè â Ãèõ
> åñòü SUSPEND. Ãî òû âåäü ñà ì ñêà çà ë ÷òî ëè÷Ãî òà êèìè ïîëüçóåøü
¼ ÷òî-òî ïîìåÃÿë.
Ãîëüçà îò çà ïðåùåÃèÿ suspend âåñüìà ñîìÃèòåëüÃà , à ðà áîòû ïðèáà âèò ìÃîãî,
ñîâåðøåÃÃî ÃÃ¥ÃóæÃîé.
P. S. Ãåäó ïåðñîÃà ëüÃûé ïðèâåò!
"Serge Buzadzhy" <[EMAIL PROTECTED]> wrote:
>
> é ÃÃÃÃà ÃÃÃÃÃà ÃÃÃÃà ÃÃÃÃÃÃÃà ÃÃ
ÃÃÃÃÃ? :)
÷ ÃÃÃÃÃ
ÃÃÃÃ
ÃÃÃ
ÃÃÃÃÃÃÃÃ
Ã
ÃÃÃÃÃÃÃÃÃÃ ÃÃÃÃ ÃÃÃÃÃ
ÃÃÃ
ÃÃÃ
ÃÃÃ ÃÃ
ÃÃ
à EXECUTE
RETURNING. îà ÃÃÃÃÃà ÃÃà ÃÃÃÃÃ
Ã
ÐдÑавÑÑвÑйÑе, sasha.
ÐÑ Ð¿Ð¸Ñали 7 ÑенÑÑбÑÑ 2006 г., 16:59:15:
>>ÐÑли ÑаÑÑмаÑÑиваÑÑ Ñ ÑÑой ÑоÑки зÑениÑ, Ñо пÑÐµÐ´Ð»Ð°Ð³Ð°Ñ Ð·Ð°Ð¿ÑеÑиÑÑ Ð²
>> Ñ
ÑанимÑÑ
пÑоÑедÑÑаÑ
:
> РзаÑем Ñогда бÑло Ð
Hi "Kovalenko Dmitry"
> А еще я буду премного благодарен
> кодоведам сервера, если они скажут в
> каких файлах исходника сервера
> находится генерация BLR-а для SUSPEND
src\dsql\gen.cpp
WBR Evgeny Putilin.
"Kovalenko Dmitry" ...
> Скачал исходники OdbcJdbc, чтобы
> посмотреть на порекомендованный
> способ определения SUSPEND по BLR.
> ---
> Способ тривиален - ищется blr_send.
>
> см Файл IscProceduresResultSet.cpp /
> IscProcedure
етра
> с кодом 14 ? :) Можно написать свой blr парсер или даже взять
> его в движке - но зачем ?
И то верно, что-то я затупил.
> > Я, через IBExpert, посмотрел содержимое
> > двух SP (с SUSPEND и без) в обоих есть blr_send.
>
> Он есть в конце любой процедуры +
ÃÃ, Ã.Ã
. ÃÃ
ID ÃÃÃ
ÃÃÃÃÃÃ Ã SUSPEND ÃÃÃÃ
Ã
.
ÃÃÃÃÃ ÃÃ ÃÃÃ-ÃÃ ÃÃÃÃÃÃ, ÃÃÃ ÃÃÃ
ÃÃSUSPENDÃÃÃÃÃ? ;)
ô.Ã
.
ãÃÃÃ
begin
id:=someid;
/*÷Ãà ÃÃÃ
ÃÃ ÃÃÃÃ
ÃÃÃÃ ÃÃ ÃÃÃÃÃ
ÃÃÃÃ, Ã ÃÃ
ÃÃÃ ÃÃ ÃÃÃ
ÃÃÃÃ ID ÃÃÃÃ
Ã
Ã
Hi "ÐндÑей ÐогилÑнÑй"
> дÑбликаÑов, Ñ.е. Ñе ID Ñже попали в SUSPEND Ñанее.
> Ðожно ли как-Ñо ÑзнаÑÑ, ÑÑо Ñже оÑSUSPENDилоÑÑ? ;)
> Т.е.
>
> Цикл
> begin
> id:=someid;
> /*Ðо
select distinct id from SP?
Ã
ÃÃÃ Ã ÃÃ
ÃÃ distinct ÃÃÃÃÃÃÃ, Ã Ã Ã ÃÃ
ÃÃÃÃÃÃÃÃÃ.
ÃÃÃÃÃÃÃÃ ÃÃÃÃ
à join'ÃÃÃÃà à ÃÃÃÃÃÃà ÃÃÃÃÃÃÃÃÃ, ÃÃÃÃà ÃÃà ÃÃ
ÃÃÃ
ÃÃÃÃÃÃÃÃÃ
ÃÃÃÃÃÃ,
à ÃÃÃÃÃà à ÃÃÃÃÃà ÃÃÃÃÃÃ
> select distinct id from SP?
>
> Ã
ÃÃÃ Ã ÃÃ
ÃÃ distinct ÃÃÃÃÃÃÃ, Ã Ã Ã ÃÃ
ÃÃÃÃÃÃÃÃÃ.
> ÃÃÃÃÃÃÃÃ ÃÃÃÃ
à join'ÃÃÃÃà à ÃÃÃÃÃÃà ÃÃÃÃÃÃÃÃÃ, ÃÃÃÃà ÃÃà ÃÃ
ÃÃÃ
ÃÃÃÃÃÃÃÃÃ
> ÃÃÃÃÃÃ,
> Ã ÃÃÃÃÃÃ Ã ÃÃÃÃÃÃ Ã
ðÃÃÃÃ!
óÃÃÃÃÃÃ, ÃÃÃÃÃ
ÃÃ!
_
ó ÃÃÃÃÃ
ÃÃÃ
Ã, áÃÃÃÃ
à ÃÃÃÃÃÃÃÃÃ.
.
> ñ, ÃÃ
ÃÃ
à IBExpert, ÃÃÃÃÃÃÃÃ
à ÃÃÃÃ
ÃÃÃÃÃÃ
> ÃÃÃÃ SP (Ã SUSPEND Ã ÃÃ
Ã) Ã ÃÃÃÃÃ Ã
ÃÃÃ blr_send.
blr_send - ÃÃÃ ÃÃÃÃÃÃÃ ÃÃ
ÃÃÃÃÃÃÃÃÃ. Ã¥ÃÃà ÃÃÃÃ
Ã
ÃÃÃ, ÃÃ ÃÃÃÃ
à à blr_send.
> á Ã
ÃÃ
à ÃÃÃà ÃÃÃ
ÃÃ
51 matches
Mail list logo