powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использование курсоров
4 сообщений из 4, страница 1 из 1
Использование курсоров
    #32008894
Вадик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему-то в SQL Server 7.00 при использовании вложенных курсоров, 2-й курсор или не открывается или возвращает 0 записей, хотя не должен. В версии 6.5 это работало, а в 7.00 не работает. Может кто-нибудь знает почему???
...
Рейтинг: 0 / 0
Использование курсоров
    #32008977
Dimitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это у меня работает:

SET NOCOUNT ON

declare @code int, @code1 int

declare Curr cursor for select [code] from [colors]
open Curr

fetch next from Curr into @code
while @@FETCH_STATUS = 0 begin
select * from [colors] where [code] = @code
print 'inner'

declare Curr1 cursor for select [code] from [colors]
open Curr1

fetch next from Curr1 into @code1
while @@FETCH_STATUS = 0 begin
select [code] from [colors] where [code] = @code1
fetch next from Curr1 into @code1
end

close Curr1
deallocate Curr1

print 'inner end'
fetch next from Curr into @code
end

close Curr
deallocate Curr

Как говорится, код в студию ( имеется в виду Ваш)! Если там у тебя идут апдейты или инсерты, то может быть начинает работать LOCKING?
...
Рейтинг: 0 / 0
Использование курсоров
    #32008994
Вадик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот он код.
Такая конструкция в 7.00 работать не будет. А в 6.5 работает.
Оказывается дело в том, что теперь при объявлении курсора до определения переменных,
используемых в запросе, курсор не берет текущее значение.

SET NOCOUNT ON

declare @code int, @code1 int, @Id int

declare Curr cursor for select [code] from [colors]
declare Curr1 cursor for select [code] from [colors] where [id]=@Id
open Curr

fetch next from Curr into @code
while @@FETCH_STATUS = 0
begin
select * from [colors] where [code] = @code
print 'inner'

Select @Id=1000
open Curr1

fetch next from Curr1 into @code1
while @@FETCH_STATUS = 0
begin
select [code] from [colors] where [code] = @code1
fetch next from Curr1 into @code1
end

close Curr1

print 'inner end'
fetch next from Curr into @code
end

close Curr
deallocate Curr
deallocate Curr1
...
Рейтинг: 0 / 0
Использование курсоров
    #32009574
Dimitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забавно...
Действительно фигня получается.
Это еще что! Теперь под НН дхтмл писать легче(!), чем под ИЕ5.5 и 6! Кто бы мог подумать.
У меня есть объяснение. Очевидно, что масса индусов и китайцев в Микрософт превзошла критическую. Когда это орава распространится в команды, пишущие операционку, тут-то и начнется конец для Микрософт.
А идусский код я видел - бред сивой кобылы!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использование курсоров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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