powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вложенная ли процедура?
10 сообщений из 10, страница 1 из 1
Вложенная ли процедура?
    #35253222
UserASE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Adaptive Server Enterprise/12.5.2/EBF 11796/P/Compaq Tru64/OSF1 V5.0A/ase1252/1831/64-bit/FBO/Fri Apr 9 10:52:27 2004

Можно ли во время выполнения процедуры узнать что она вызвана из другой процедуры, а не отдельно?

Требуется разный алгоритм действий, когда процедура вызвана из определенной процедуры, и в других случаях.
Параметры использовать не хочется, т.к. полбазы и модули переделывать.
Просто помогите с конкретным вопросом, пожалуйста.
...
Рейтинг: 0 / 0
Вложенная ли процедура?
    #35253252
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну сходу хочется напомнить, что параметры процедур можно передавать по именам, и параметры могут иметь значения по умолчанию. Т.е. очень легко добавить новый параметр, так, чтобы он не мешал уже существующему приложению работать.
...
Рейтинг: 0 / 0
Вложенная ли процедура?
    #35253261
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@@nestlevel - покажет уровень вложенности SP
...
Рейтинг: 0 / 0
Вложенная ли процедура?
    #35253263
@@nestlevel
...
Рейтинг: 0 / 0
Вложенная ли процедура?
    #35253265
UserASE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, действительно.
Но модули переделывать все равно придется.

Все-таки, можно ли узнать из какой процедуры вызвана данная процедура?
...
Рейтинг: 0 / 0
Вложенная ли процедура?
    #35253282
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, это вам поможет.
TSQL User's GuideNesting occurs when one stored procedure or trigger calls another. The nesting level is incremented when the called procedure or trigger begins execution and it is decremented when the called procedure or trigger completes execution. Exceeding the maximum of 16 levels of nesting causes the procedure to fail. The current nesting level is stored in the @@nestlevel global variable.
...
Рейтинг: 0 / 0
Вложенная ли процедура?
    #35253314
UserASE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению, уровень вложенности не позволяет определить какой алгоритм использовать, т.к. процедура эта вызывается из разных процедур, а вот при вызове из одной - должна работать по другому.
Сделать "null" параметр и задавать его только в этой процедуре...
Все равно не очень, т.к. вызывается она через еще одну...
вот жеж... :)

Как узнать имена процедур верхнего уровня вложенности для определенной процедуры?
...
Рейтинг: 0 / 0
Вложенная ли процедура?
    #35253487
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UserASE пишет:

> Как узнать имена процедур верхнего уровня вложенности для определенной
> процедуры?
Это уже вряд ли ...
вы бы уже давно через параметр сделали ...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вложенная ли процедура?
    #35253493
UserASE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да уже сделал через параметр
...
Рейтинг: 0 / 0
Вложенная ли процедура?
    #35253508
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну можно и без параметра.... используя mda таблицы

вот такой запрос во вложенной SP, покажет имя SP, которая ее вызвала

select object_name(ObjectID,DBID) as object_name from master..monProcessProcedures where SPID= @@spid and ContextID = @@nestlevel -1
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вложенная ли процедура?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]