Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 теоретический вопрос про курсоры  [new]
black zorro
Member

Откуда:
Сообщений: 451
в документации вычитал что: Локальные курсоры же доступны только в той процедуре которая их объявила. Правда если их хп была вызвана другая хп то эта другая хп может ссылаться на объявленный локальный курсор
пробую сделать так:
ALTER       procedure foo1
as
declare loc_cur cursor local for select * from  Таблица1
exec foo3
close loc_cur
deallocate loc_cur

и еще
ALTER   proc foo3
as
open loc_cur
fetch loc_cur 

получаю в результате:
автор

Server: Msg 16916, Level 16, State 1, Procedure foo3, Line 4
A cursor with the name 'loc_cur' does not exist.
Server: Msg 16916, Level 16, State 1, Procedure foo3, Line 5
A cursor with the name 'loc_cur' does not exist.
Server: Msg 16917, Level 16, State 1, Procedure foo1, Line 11
Cursor is not open.

также в доке написано что курсоры как переменные можно передавать только как ВЫХОДные переменные но не ВХОДНЫЕ, тогда как же в вызванной хп добраться до локального курсора объявленного выше?
2 ноя 05, 17:07    [2032462]     Ответить | Цитировать Сообщить модератору
 Re: теоретический вопрос про курсоры  [new]
black zorro
Member

Откуда:
Сообщений: 451
сорри забыл вызываю разумется
exec foo1
2 ноя 05, 17:08    [2032472]     Ответить | Цитировать Сообщить модератору
 Re: теоретический вопрос про курсоры  [new]
Glory
Member

Откуда:
Сообщений: 104760
Правда если их хп была вызвана другая хп то эта другая хп может ссылаться на объявленный локальный курсор
Что-то не дочитали


LOCAL
Specifies that the scope of the cursor is local to the batch, stored procedure, or trigger in which the cursor was created.


GLOBAL
Specifies that the scope of the cursor is global to the connection. The cursor name can be referenced in any stored procedure or batch executed by the connection. The cursor is only implicitly deallocated at disconnect
2 ноя 05, 17:10    [2032484]     Ответить | Цитировать Сообщить модератору
 Re: теоретический вопрос про курсоры  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
в документации вычитал что...Правда если их хп была вызвана другая хп то эта другая хп может ссылаться на объявленный локальный курсор


В где Вы это прочитали?!

Specifies that the scope of the cursor is local to the batch, stored procedure, or trigger in which the cursor was created.
2 ноя 05, 17:11    [2032494]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить