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

Откуда:
Сообщений: 6
Всем привет!

Сразу говорю, что в SQL дилетант. Бывает так, что не до конца отрабатывает fetch (а может exec). Допустим в таблице 40 строк, а exec отработал только для 30. Подскажите, из-за чего такое может быть? Может быть можно без fetch обойтись?


автор
CREATE PROCEDURE _opov
@GROUP INT, @MESSAGE INT
AS
BEGIN
DECLARE @PHONE VARCHAR (20), @SQL NVARCHAR (255)
IF @GROUP=1 SET @SQL='set @curvar= cursor local for SELECT phone FROM _opov1 open @curvar'
IF @GROUP=2 SET @SQL='set @curvar= cursor local for SELECT phone FROM _opov2 open @curvar'
IF @GROUP=3 SET @SQL='set @curvar= cursor local for SELECT phone FROM _opov3 open @curvar'
IF @GROUP=4 SET @SQL='set @curvar= cursor local for SELECT phone FROM _opov4 open @curvar'
DECLARE @NOTIF CURSOR
exec sp_executesql @SQL, N'@curvar cursor output ', @curvar=@NOTIF output
FETCH NEXT FROM @NOTIF INTO @PHONE
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC _addnot @service_code='1', @number=@PHONE, @param = '@message', @param_values = @MESSAGE
FETCH NEXT FROM @NOTIF INTO @PHONE
END
CLOSE @NOTIF
DEALLOCATE @NOTIF
END
22 апр 13, 05:02    [14211042]     Ответить | Цитировать Сообщить модератору
 Re: не до конца отрабатывает FETCH  [new]
avts2000
Member

Откуда:
Сообщений: 6
MS SQL 2000 SP4
22 апр 13, 05:13    [14211046]     Ответить | Цитировать Сообщить модератору
 Re: не до конца отрабатывает FETCH  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31962
avts2000
Бывает так, что не до конца отрабатывает fetch (а может exec). Допустим в таблице 40 строк, а exec отработал только для 30. Подскажите, из-за чего такое может быть?
Может, данные меняются во время цикла, у вас же курсор обновляемый?
22 апр 13, 10:27    [14211438]     Ответить | Цитировать Сообщить модератору
 Re: не до конца отрабатывает FETCH  [new]
Glory
Member

Откуда:
Сообщений: 104751
avts2000
Сразу говорю, что в SQL дилетант. Бывает так, что не до конца отрабатывает fetch (а может exec). Допустим в таблице 40 строк, а exec отработал только для 30. Подскажите, из-за чего такое может быть? Может быть можно без fetch обойтись?

А как SQL дилетанты сейчас определяют
- что на момент вызов процедуры в таблице были 40 строк ? Учитывая, что там 4 разных таблицы.
- что exec отработал только для 30 строк ?
22 апр 13, 11:01    [14211601]     Ответить | Цитировать Сообщить модератору
 Re: не до конца отрабатывает FETCH  [new]
avts2000
Member

Откуда:
Сообщений: 6
Glory
avts2000
Сразу говорю, что в SQL дилетант. Бывает так, что не до конца отрабатывает fetch (а может exec). Допустим в таблице 40 строк, а exec отработал только для 30. Подскажите, из-за чего такое может быть? Может быть можно без fetch обойтись?

А как SQL дилетанты сейчас определяют
- что на момент вызов процедуры в таблице были 40 строк ? Учитывая, что там 4 разных таблицы.
- что exec отработал только для 30 строк ?


Определяется по результату отработки процедуры _addnot. Количество записей в каждой таблице фиксировано и не меняется.
22 апр 13, 11:22    [14211701]     Ответить | Цитировать Сообщить модератору
 Re: не до конца отрабатывает FETCH  [new]
Glory
Member

Откуда:
Сообщений: 104751
avts2000
Определяется по результату отработки процедуры _addnot.

Напрямую общаетесь с процедурой в двоичном коде ?
22 апр 13, 11:23    [14211706]     Ответить | Цитировать Сообщить модератору
 Re: не до конца отрабатывает FETCH  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Вообще, странно. Нам показывают чёрный ящик (вызов _addnot) и что-то о чём-то спрашивают.
Какой смысл так спрашивать-то?
И курсор динамический, действительно.
22 апр 13, 11:26    [14211720]     Ответить | Цитировать Сообщить модератору
 Re: не до конца отрабатывает FETCH  [new]
avts2000
Member

Откуда:
Сообщений: 6
Glory
avts2000
Определяется по результату отработки процедуры _addnot.

Напрямую общаетесь с процедурой в двоичном коде ?


Шутите? Я же вижу результат выполнения процедуры _addnot для каждой строки из таблицы и по нему определяю для каких стоок выполнилосьЮ, а для каких нет.
22 апр 13, 11:27    [14211725]     Ответить | Цитировать Сообщить модератору
 Re: не до конца отрабатывает FETCH  [new]
Glory
Member

Откуда:
Сообщений: 104751
avts2000
Шутите? Я же вижу результат выполнения процедуры _addnot для каждой строки из таблицы

А я вот не вижу. Поэтому и предполагаю, что ваш мозг и глаза наверное обладают какими то сверхестественным способностями, раз умеют без взяких программных средств отслеживать ход выполнения процедур.
22 апр 13, 11:30    [14211748]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить