Re[2]: ��� SUSPEND

2007-04-08 Пенетрантность �������� �����

Здравствуйте, sasha.

Вы писали 7 сентября 2006 г., 16:59:15:


Если рассматривать с этой точки зрения, то предлагаю запретить в
 хранимых процедурах:

 А зачем тогда было запрещать сортировку по невыбираемым полям в запросах
 с группировкой? И так бы прокатило...

А что, запретили что-ли?
Я например в такой сортировке ничего плохого не вижу и иногда пользую.

-- 
С уважением,
 Владимир  mailto:[EMAIL PROTECTED]



Re: Дубликаты при SUSPEND

2006-10-09 Пенетрантность Konstantin R. Beliaev


Андрей Могильный wrote:

если б меня distinct устроил, я б и не спрашивал.
хранимка будет join'иться с другими таблицами, боюсь там везде дубликаты
пойдут,
а пихать в каждый запрос с этой хранимкой distinct ой как неохота.


А нельзя ли так преобразовать этот граф, чтобы исключить возможность 
повторного выхода на тот же узел? Например, PATH или left-rigth к 
веткам-листьям добавить?

А то так и зациклиться запросто.



Re: Дубликаты при SUSPEND

2006-10-09 Пенетрантность Oleg LOA
Konstantin R. Beliaev [EMAIL PROTECTED] wrote in message news:[EMAIL 
PROTECTED]
 
 Андрей Могильный wrote:
 если б меня distinct устроил, я б и не спрашивал.
 хранимка будет join'иться с другими таблицами, боюсь там везде дубликаты
 пойдут,
 а пихать в каждый запрос с этой хранимкой distinct ой как неохота.
 
 А нельзя ли так преобразовать этот граф, чтобы исключить возможность 

На этот вопрос лучше искать ответ в книге под названием Теория графов

P.S. Это не литература о дворянстве :-):-):-):-)

��������� ��� SUSPEND

2006-09-29 Пенетрантность ������ ��������

÷ÓÅÍ ÐÒÉ×ÅÔ!

ðÉÛÕ ÓÅÌÅËÔÉ×ÎÕÀ ÒÅËÕÒÓÉ×ÎÕÀ ÈÒÁÎÉÍËÕ ÏÂÈÏÄÁ ÄÅÒÅ×Á (ÄÁÖÅ ÇÒÁÆÁ),
ÎÁ ×ÙÈÏÄÅ ÔÁÂÌÉÃÁ Ó ÏÄÎÉÍ ÐÏÌÅÍ - ÎÅËÉÊ ID. ôÁË ×ÏÔ ÐÒÉ ÏÂÈÏÄÅ ×ÏÚÍÏÖÅÎ
×ÙÈÏÄ
ÄÕÂÌÉËÁÔÏ×, Ô.Å. ÔÅ ID ÕÖÅ ÐÏÐÁÌÉ × SUSPEND ÒÁÎÅÅ.
íÏÖÎÏ ÌÉ ËÁË-ÔÏ ÕÚÎÁÔØ, ÞÔÏ ÕÖÅ ÏÔSUSPENDÉÌÏÓØ? ;)
ô.Å.

ãÉËÌ
begin
  id:=someid;
  /*÷ÏÔ ÚÄÅÓØ ÈÏÔÅÌÏÓØ ÂÙ ÐÒÏ×ÅÒÉÔØ, Á ÎÅ ÂÙÌ ÌÉ ÕÖÅ ÜÔÏÔ ID ÒÁÎÅÅ ×ÙÄÁÎ
ÎÁÒÕÖÕ ÐÒÉ ÄÒÕÇÉÈ ÒÅËÕÒÓÉ×ÎÙÈ ×ÙÚÏ×ÁÈ ÜÔÏÊ ÖÅ ÈÒÁÎÉÍËÉ*/
  suspend;
end

éÌÉ ËÁË ÜÔÏ ÍÏÖÎÏ ÓÄÅÌÁÔØ? åÓÌÉ × ÌÏÂ, ÄÅÌÁÔØ ÎÅ ÞÅÒÅÚ SUSPEND, Á ÞÅÒÅÚ
ÎÅËÕÀ ×ÒÅÍÅÎÎÕÀ ÔÁÂÌÉÃÕ, ÎÅ ÏÞÅÎØ ÈÏÒÏÛÏ, ÂÕÄÅÔ ÐÒÉÔÏÒÍÁÖÉ×ÁÔØ, ÄÁ É ÍÕÓÏÒ
ÐÌÏÄÉÔØ, ÈÒÁÎÉÍËÁ ÂÕÄÅÔ ÞÁÓÔÏ ×ÙÚÙ×ÁÔØÓÑ.

_

ó Õ×ÁÖÅÎÉÅÍ, áÎÄÒÅÊ íÏÇÉÌØÎÙÊ.






Re: ��������� ��� SUSPEND

2006-09-29 Пенетрантность Evgeny Putilin

Hi  Андрей Могильный 
 дубликатов, т.е. те ID уже попали в SUSPEND ранее.
 Можно ли как-то узнать, что уже отSUSPENDилось? ;)
 Т.е.
 
 Цикл
 begin
   id:=someid;
   /*Вот здесь хотелось бы проверить, а не был ли уже этот ID ранее выдан
 наружу при других рекурсивных вызовах этой же хранимки*/
   suspend;
 end
 
 Или как это можно сделать? Если в лоб, делать не через SUSPEND, а через
 некую временную таблицу, не очень хорошо, будет притормаживать, да и мусор
 плодить, хранимка будет часто вызываться.
Зачем так сложно тебе не проще будет сделать 
select distinct id from SP?

WBR Evgeny Putilin.



Re: ��������� ��� SUSPEND

2006-09-29 Пенетрантность ������ ��������


select distinct id from SP?

ÅÓÌÉ Â ÍÅÎÑ distinct ÕÓÔÒÏÉÌ, Ñ Â É ÎÅ ÓÐÒÁÛÉ×ÁÌ.
ÈÒÁÎÉÍËÁ ÂÕÄÅÔ join'ÉÔØÓÑ Ó ÄÒÕÇÉÍÉ ÔÁÂÌÉÃÁÍÉ, ÂÏÀÓØ ÔÁÍ ×ÅÚÄÅ ÄÕÂÌÉËÁÔÙ
ÐÏÊÄÕÔ,
Á ÐÉÈÁÔØ × ËÁÖÄÙÊ ÚÁÐÒÏÓ Ó ÜÔÏÊ ÈÒÁÎÉÍËÏÊ distinct ÏÊ ËÁË ÎÅÏÈÏÔÁ.

_

ó Õ×ÁÖÅÎÉÅÍ, áÎÄÒÅÊ íÏÇÉÌØÎÙÊ.





Re: ��������� ��� SUSPEND

2006-09-29 Пенетрантность ����������� ������

 select distinct id from SP?

 ÅÓÌÉ Â ÍÅÎÑ distinct ÕÓÔÒÏÉÌ, Ñ Â É ÎÅ ÓÐÒÁÛÉ×ÁÌ.
 ÈÒÁÎÉÍËÁ ÂÕÄÅÔ join'ÉÔØÓÑ Ó ÄÒÕÇÉÍÉ ÔÁÂÌÉÃÁÍÉ, ÂÏÀÓØ ÔÁÍ ×ÅÚÄÅ ÄÕÂÌÉËÁÔÙ
 ÐÏÊÄÕÔ,
 Á ÐÉÈÁÔØ × ËÁÖÄÙÊ ÚÁÐÒÏÓ Ó ÜÔÏÊ ÈÒÁÎÉÍËÏÊ distinct ÏÊ ËÁË ÎÅÏÈÏÔÁ.

ÎÕ ÔÁË ÓÄÅÌÁÊ ÈÒÁÎÉÍËÕ ËÏÔÏÒÁÑ ÂÕÄÅÔ ÄÅÌÁÔØ óåìåëô äéóôéîëô ÉÚ ÜÔÏ, É ÅÅ É 
ÄÖÏÊÎØ
:) 





Re: ��������� ��� SUSPEND

2006-09-29 Пенетрантность ������ ��������

ðÏÎÑÌ!
óÐÁÓÉÂÏ, ËÏÌÌÅÇÉ!
_

ó Õ×ÁÖÅÎÉÅÍ, áÎÄÒÅÊ íÏÇÉÌØÎÙÊ.






Re: Дубликаты при SUSPEND

2006-09-29 Пенетрантность Ovchinnikov Vasily


Андрей Могильный пишет:

select distinct id from SP?

если б меня distinct устроил, я б и не спрашивал.

Постановка вопроса страдает, вестимо...
Тяжело мысли угадывать, когда вы на двух языках сразу думаете (c)

Можешь, конечно, обойдись временной таблицей, как и сам говорил. А если 
не хочется мусора, то можно сделать EXTERNAL TABLE.


--
Regards,
Ovchinnikov Vasily
ova at tkvc ru



Re: Дубликаты при SUSPEND

2006-09-29 Пенетрантность WildSery

 Андрей Могильный пишет:
 select distinct id from SP?

 если б меня distinct устроил, я б и не спрашивал.
 Постановка вопроса страдает, вестимо...
 Тяжело мысли угадывать, когда вы на двух языках сразу думаете (c)

 Можешь, конечно, обойдись временной таблицей, как и сам говорил. А если
 не хочется мусора, то можно сделать EXTERNAL TABLE.

А ещё лучше - с временной таблицей, и без рекурсии.



Re: Дубликаты при SUSPEND

2006-09-29 Пенетрантность Oleg Deribas

Hello,

Андрей Могильный said the following on 29.09.2006 12:57:

 Пишу селективную рекурсивную хранимку обхода дерева (даже графа),
   /*Вот здесь хотелось бы проверить, а не был ли уже этот ID ранее выдан
 наружу при других рекурсивных вызовах этой же хранимки*/

Если fb2 - сделай для этого контекстную переменную в namespace
USER_TRANSACTION

-- 
Oleg



Re: Дубликаты при SUSPEND

2006-09-29 Пенетрантность Dmitri Kuzmenko


Hello, Андрей!

Андрей Могильный wrote:


Пишу селективную рекурсивную хранимку обхода дерева (даже графа),
на выходе таблица с одним полем - некий ID. Так вот при обходе возможен
выход
дубликатов, т.е. те ID уже попали в SUSPEND ранее.
Можно ли как-то узнать, что уже отSUSPENDилось? ;)


нет.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




FB. Stored proc suspend

2006-09-28 Пенетрантность RUST


hi all
Подскажите плз., обязана ли хранимая процедура
возвращать строки в том же порядке, в котором
вызывается suspend?



Re: FB. Stored proc suspend

2006-09-28 Пенетрантность Dmitri Kuzmenko


Hello, Rust!

RUST wrote:


Подскажите плз., обязана ли хранимая процедура
возвращать строки в том же порядке, в котором
вызывается suspend?


может она и не обязана, но по другому не может.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Про SUSPEND

2006-09-08 Пенетрантность Oleg Deribas

Hello,

sasha said the following on 07.09.2006 16:33:

 Мы, к примеру, не можем перейти на .NET 2.0 с .NET 1.1 т.к. очень много
 изменений надо делать и стандартный майкрософтовский конвертер не
 справляется. 

А что именно не получилось? Мы все что хотели - сразу перевели на 2.0.

-- 
Oleg



Re: Про SUSPEND

2006-09-08 Пенетрантность sasha



А что именно не получилось? Мы все что хотели - сразу перевели на 2.0.


Не помню что, но после конвертации было несколько сотен ошибок, которые 
править было некогда. Решили пока на 1.1 остаться. Думаю к новому году 
таки перейдём...






Re: Про SUSPEND

2006-09-08 Пенетрантность Kovalenko Dmitry


sasha wrote:
  Да не проблема запретить. Но чем это тебе поможет, если выходные параметры
  таки нужны?

 Ну если нужны - это другой вопрос. Я бы вобще запретил вызывать
 процедуры через EXECUTE PROCEDURE, если в них есть SUSPEND. Но ты ведь
 сам сказал что лично такими пользуешься. Поэтому я не знаю что сказать.

Можно поступить по другому. В
компонентах доступа  поддеживать
запрос типа EXEC SP ... (или, например,
ODBC-шный синтаксис вызова SP), который
транслируетя в select / execute procedure в
зависимости от наличия OUT-параметров и
SUSPEND. Думаю, это решит твою проблему.

Коваленко Дмитрий.



Re: оПН SUSPEND

2006-09-08 Пенетрантность Serge Buzadzhy


Dmitry Yemanov пишет:

sasha [EMAIL PROTECTED] wrote:
А можно запретить? Мне кажется что такую тонкость как поведение SUSPEND 
при вызове процедуры с помощью EXECUTE PROCEDURE, помнят очень не многие.


Очень многие люди вызывают процедуры с SUSPEND через EXECUTE. Я, например 
:-)


И какой тайный смысл такового действа? :)




Re: ��� SUSPEND

2006-09-08 Пенетрантность Dmitry Yemanov

Serge Buzadzhy [EMAIL PROTECTED] wrote:

 é ËÁËÏÊ ÔÁÊÎÙÊ ÓÍÙÓÌ ÔÁËÏ×ÏÇÏ ÄÅÊÓÔ×Á? :)

÷ ÐÒÏÃÅÄÕÒÅ ÍÎÅ ÎÁÇÌÑÄÎÅÅ ×ÏÚ×ÒÁÝÁÔØ ÏÄÎÏ ÚÎÁÞÅÎÉÅ ÉÍÅÎÎÏ ÞÅÒÅÚ EXECUTE 
RETURNING. îÏ ÉÎÏÇÄÁ ÜÔÏ ÚÎÁÞÅÎÉÅ ÎÕÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ × ÚÁÐÒÏÓÅ, Á ÔÁÍ ÂÅÚ 
SELECT ÎÉËÕÄÁ. ÷ ÏÓÎÏ×ÎÏÍ ÜÔÏ ÓÌÕÞÁÉ ÜÍÕÌÑÃÉÉ PSQL-ÆÕÎËÃÉÊ ÉÍÅÀÝÅÍÉÓÑ 
ÓÒÅÄÓÔ×ÁÍÉ. âÌÁÖØ, ËÏÎÅÞÎÏ, ÎÏ ÔÅÍ ÎÅ ÍÅÎÅÅ :-)


--
äÍÉÔÒÉÊ åÍÁÎÏ×





Re: оПН SUSPEND

2006-09-08 Пенетрантность Serge Buzadzhy


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

2006-09-07 Пенетрантность Dmitry Yemanov

Ded [EMAIL PROTECTED] wrote:

 Íó ìîæåò òîëüêî ñîáðàëèñü, ìíå-òî ïîôèã... Ïîøóêàé òóò ïîèñêîì, ÄÅ âåùàë 
 íåäàâíî íà ýòó òåìó.

Âåùàë ÿ íà äðóãóþ òåìó. SUSPEND íèêòî íå çàïðåùàë.


--
Äìèòðèé Åìàíîâ





Re: Про SUSPEND

2006-09-07 Пенетрантность sasha



Вещал я на другую тему. SUSPEND никто не запрещал.


А можно запретить? Мне кажется что такую тонкость как поведение SUSPEND 
при вызове процедуры с помощью EXECUTE PROCEDURE, помнят очень не 
многие. Фактически это потенциальная возможность провести ночь наедине с 
отладчиком.




Re: Про SUSPEND

2006-09-07 Пенетрантность Ded


sasha wrote:

Фактически это потенциальная возможность провести ночь наедине с 
отладчиком.


   Если рассматривать с этой точки зрения, то предлагаю запретить в 
хранимых процедурах:


1. Условные операторы - запросто можно накрутить лишнего.
2. Переменные - легко можно забыть инициализировать.
3. Оператор деления - можно поделить на ноль.
4. Всю остальную арифметику - ничто не мешает сложить не с тем, вычесть 
не то и умножить вообще на хрен знает что.

5. УДФ. Это вообще чорный ящик.
6. Блоки. Если бигины и енды растыкать не в те места, в которые нужно, 
то такая херня получается...

7. Операторы обработки исключений. Ну совсем не для среднего ума штучка.
8. SQL-запросы. Случается, даже сервак подвешивают.

   Примерно так. Жить станет лучше, жить станет веселей.

--
Regards. Ded.



Re: Про SUSPEND

2006-09-07 Пенетрантность sasha


   Если рассматривать с этой точки зрения, то предлагаю запретить в 
хранимых процедурах:


А зачем тогда было запрещать сортировку по невыбираемым полям в запросах 
с группировкой? И так бы прокатило...




Re: Про SUSPEND

2006-09-07 Пенетрантность sasha


Очень многие люди вызывают процедуры с SUSPEND через EXECUTE. Я, например 
:-)



Процедуры без выходных параметров у тебя с SUSPEND? Я ведь токо про 
них... Если да, то почему не EXIT ?




Re: Про SUSPEND

2006-09-07 Пенетрантность Ded


sasha wrote:

А зачем тогда было запрещать сортировку по невыбираемым полям в запросах 
с группировкой? И так бы прокатило...


  Не-а. Вот это-то как раз не прокатило бы в общем случае.

--
Regards. Ded.



Re: Про SUSPEND

2006-09-07 Пенетрантность Boulitchev Aleksey


А зачем тогда было запрещать сортировку по невыбираемым полям в запросах с 
группировкой? И так бы прокатило...


по личной просьбе оптимизатора - его тошнило

PS +:)

--
Булычев Алексей
http://www.stella-npf.ru 





Re: Про SUSPEND

2006-09-07 Пенетрантность sasha



  Не-а. Вот это-то как раз не прокатило бы в общем случае.


Но ведь до 2.0 так было...

Вобще сами посудите. Где такое есть чтобы оператор менял своё поведение 
в зависимости от способа вызова подпрограммы? Я не теоретик в области 
языков программирования, но чую что так не должно быть...




Re: Про SUSPEND

2006-09-07 Пенетрантность Ded


Oleg LOA wrote:


Объясни как  неопределённое поведение может менять своё поведение в 
зависиости от чего-го там?


   Мона я? Через фазу луны :-D

--
Regards. Ded.



Re: Про SUSPEND

2006-09-07 Пенетрантность sasha



Объясни как  неопределённое поведение может менять своё поведение в 
зависиости от чего-го там?


Как это неопределённое поведение?

Вот выдержка из LAngRef, стр. 169

Select procedure:
• Suspends execution of procedure until next FETCH is issued
• Returns output values

Executable procedure:
• Jumps to final END
• Not Recommended


Определения Select procedure и Executable procedure - это вобще 
отдельная тема, поскольку Select procedure всегда является Executable 
procedure:


Select procedures that an application can use in place of a table or 
view in a SELECT
statement. A select procedure must be defined to return one or more 
values, or an error

will result.

Executable procedures that an application can call directly, with the 
EXECUTE PROCEDURE
statement. An executable procedure need not return values to the calling 
program.


Фактически из этих определений ясно видно что Select procedure - это 
такая, которую можно вызвать в команде SELECT. Но поскольку её же можно 
вызвать и в команде EXECUTE PROCEDURE, то программист формально не может 
определить будет ли выполнен Jumps to final END или не будет.


Я предлагаю в случае отсутствия выходных параметров запретить 
использование SUSPEND, т.к. для этого предназначен EXIT.




Вот, к стати, интересная аналогия на C#:

void Button1Click(object sender, System.EventArgs e)
{
SuspendTest();
}

public IEnumerable SuspendTest()
{
MessageBox.Show(Start);

for (int i = 0; i  5; i++)
yield return i;
}


При вызове Button1Click код

MessageBox.Show(Start);

вобще не срабатывает.



Re: Про SUSPEND

2006-09-07 Пенетрантность sasha


Ты мне мозги не парь. Вот твой вопрос: А зачем тогда было запрещать сортировку по невыбираемым полям в запросах 
с группировкой? И так бы прокатило...


Я это спросил не потому что я против того что вы поменяли. Я даже этим 
не пользовался никогда. Просто знаю о факте что это было поменяно и что 
люди имели вопросы.
Собственно вопрос я задал с намёком на то: почему сортировку запретить 
можно, а SUSPEND в процедуре без параметров нельзя? Надо выйти из 
процедуры - пользуй EXIT.




Re: ��� SUSPEND

2006-09-07 Пенетрантность Dmitry Yemanov

sasha [EMAIL PROTECTED] wrote:

 à SUSPEND â ïðîöåäóðå áåç ïàðàìåòðîâ íåëüçÿ? Íàäî âûéòè èç ïðîöåäóðû - 
 ïîëüçóé EXIT.

Äà íå ïðîáëåìà çàïðåòèòü. Íî ÷åì ýòî òåáå ïîìîæåò, åñëè âûõîäíûå ïàðàìåòðû 
òàêè íóæíû?


--
Äìèòðèé Åìàíîâ





Re: Про SUSPEND

2006-09-07 Пенетрантность sasha


Да не проблема запретить. Но чем это тебе поможет, если выходные параметры 
таки нужны?


Ну если нужны - это другой вопрос. Я бы вобще запретил вызывать 
процедуры через EXECUTE PROCEDURE, если в них есть SUSPEND. Но ты ведь 
сам сказал что лично такими пользуешься. Поэтому я не знаю что сказать.


У меня же ситуация была судя по всему следующая. Процедура делает внутри 
себя кое-каие вычисления и сохраняет их в таблицах. Для отладки мы 
наделали кучу выходных параметров чтобы посмотреть что она в таблицы 
пишет, а когда отладили, то выходные параметры превратили во внутренние 
переменные. Про то что надо удалить SUSPEND-ы никто не сообразил. В 
результате мы поимели баг, который вылавливали больше двух часов. Если 
бы SUSPEND был запрещён, то конкретно этот баг было бы сделать невозможно.




Re: ��� SUSPEND

2006-09-07 Пенетрантность Dmitry Yemanov

sasha [EMAIL PROTECTED] wrote:

 ß áû âîáùå çàïðåòèë âûçûâàòü ïðîöåäóðû ÷åðåç EXECUTE PROCEDURE, åñëè â íèõ 
 åñòü SUSPEND. Íî òû âåäü ñàì ñêàçàë ÷òî ëè÷íî òàêèìè ïîëüçóåøüñÿ. Ïîýòîìó 
 ÿ íå çíàþ ÷òî ñêàçàòü.

Äåëî íå ñòîëüêî âî ìíå, ñêîëüêî â êó÷å ïðîöåäóð, ñãåíåðåííûõ IBExpert-îì (è 
èæå ñ íèì) è ñîäåðæàùèõ SUSPEND èñêëþ÷èòåëüíî øîá áóëî. Ïîìíþ âðåìåíà, 
êîãäà íà ôîðóìàõ ðåêîìåíäîâàëè â executable-ïðîöåäóðàõ âñåãäà ïèñàòü SUSPEND 
(íà âñÿêèé ïîæàðíûé ñëó÷àé). Òàê ÷òî íàñëåäèå îé êàê âåëèêî.


--
Äìèòðèé Åìàíîâ





Re: оПН SUSPEND

2006-09-07 Пенетрантность Dmitri Kuzmenko


Hello, Dmitry!

Dmitry Yemanov wrote:

иже с ним) и содержащих SUSPEND исключительно шоб було. Помню времена, 
когда на форумах рекомендовали в executable-процедурах всегда писать SUSPEND 
(на всякий пожарный случай). Так что наследие ой как велико.


я рекомендовал. Но - при наличии выходных параметров.
Другое дело, что как ни пиши, все равно найдется тот,
кто неправильно поймет. Что мы наблюдаем сплошь и рядом.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Про SUSPEND

2006-09-07 Пенетрантность sasha


Дело не столько во мне, сколько в куче процедур, сгенеренных IBExpert-ом (и 
иже с ним) и содержащих SUSPEND исключительно шоб було. Помню времена, 
когда на форумах рекомендовали в executable-процедурах всегда писать SUSPEND 
(на всякий пожарный случай). Так что наследие ой как велико.


Так а зачем версию сервера менять если наследование есть? Хочешь новую 
версию сервера - переделывай. Не хочешь переделывать - сиди на старой 
версии...
Мы, к примеру, не можем перейти на .NET 2.0 с .NET 1.1 т.к. очень много 
изменений надо делать и стандартный майкрософтовский конвертер не 
справляется. Ну и что здесь такого страшного? По-моему вполне нормальная 
ситуация, когда производитель исправил свои ошибки и выпустил 
несовместимую со старыми ошибками версию.




Re: оПН SUSPEND

2006-09-07 Пенетрантность Ded


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

2006-09-07 Пенетрантность Eugene

sasha [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]

 Ìû, ê ïðèìåðó, íå ìîæåì ïåðåéòè íà .NET 2.0 ñ .NET 1.1 ò.ê. î÷åíü ìíîãî
 èçìåíåíèé íàäî äåëàòü è ñòàíäàðòíûé ìàéêðîñîôòîâñêèé êîíâåðòåð íå
 ñïðàâëÿåòñÿ. Íó è ÷òî çäåñü òàêîãî ñòðàøíîãî?

×òî âìåñòî ïîëåçíîé ðàáîòû ïðèõîäèòñÿ çàíèìàòñÿ ïåðåäåëêàìè òîëüêî èç-çà
òîãî, ÷òî ïðîèçâîäèòåëü ÷òî-òî ïîìåíÿë.
Ïîëüçà îò çàïðåùåíèÿ suspend âåñüìà ñîìíèòåëüíà, à ðàáîòû ïðèáàâèò ìíîãî,
ñîâåðøåííî íåíóæíîé.

P. S. Äåäó ïåðñîíàëüíûé ïðèâåò!





Про SUSPEND

2006-09-06 Пенетрантность sasha


Привет.

Не помню подымался ли вопрос, поэтому спрошу. Можно ли запретить SUSPEND 
в процедурах, которые не имеют выходных параметров? Сегодня пару часов 
мучались из-за того что в такой процедуре каким-то образом очутился этот 
SUSPEND и процедура не выполнялась до конца. По идее использование 
SUSPEND в таких процедурах - это бред.




Re: Про SUSPEND

2006-09-06 Пенетрантность Ded


sasha wrote:

Сегодня пару часов 
мучались из-за того что в такой процедуре каким-то образом очутился этот 
SUSPEND и процедура не выполнялась до конца.


   А прикинь что будет если туда вдруг затесается EXIT или в структуре 
IF-ов кто-то облажается... Расслабься, в двойке уже запретили.


--
Regards. Ded.




Re: Про SUSPEND

2006-09-06 Пенетрантность sasha



Расслабься, в двойке уже запретили.


В какой это? Я только двойками и пользуюсь и оно работает.



Определение наличия SUSPEND по BLR

2006-07-24 Пенетрантность Kovalenko Dmitry
Привет всем.

Проблему я описал в сообщении вызов
селективных процедур ..., но, как
обычно, народ понесло как коней из
горящей конюшни.

Прошу - в эту ветку писать только по
существу. А именно по теме топика!

Скачал исходники OdbcJdbc, чтобы
посмотреть на порекомендованный
способ определения SUSPEND по BLR.
---
Способ тривиален - ищется blr_send.

см Файл IscProceduresResultSet.cpp /
IscProceduresResultSet::canSelectFromProcedure
---

Правда реализация весьма странная -
сначала формируется текстовое
представление BLR-кода, потом ищется
строка blr_send. Непонятно - почему бы
просто не найти код blr_send=14 ???

Я, через IBExpert, посмотрел содержимое
двух SP (с SUSPEND и без) в обоих есть blr_send.
Та, которая с SUSPEND, отличается так:

blr_begin, blr_send, 1, blr_begin,
 тут идут некий assign-инструкции
blr_end, blr_stall, blr_end

Вот теперь я и мыслю - это нужно нечто
подобное искать в BLR-е ???

А еще я буду премного благодарен
кодоведам сервера, если они скажут в
каких файлах  исходника сервера
находится генерация BLR-а для SUSPEND

Коваленко Дмитрий.
www.ibprovider.com


--~--~-~--~~~---~--~~
-~--~~~~--~~--~--~---