Wadim
Дата: 07.12.2000 14:42:58
Проблема:
В сохраненной процедуре в цикле выполняется запрос, один из запросов вызывает ошибку (The query contained only ignored words). Можно ли ее отловить и перейти на следующую итерацию цикла?
Fompro
Дата: 07.12.2000 16:13:47
Насколько я понимаю, Вы выполняете EXEC(@cmd_str).
Поставьте IF @@ERRORE>0
PRINT @cmd_str
Дальше будет видно
Wadim
Дата: 08.12.2000 07:12:21
после выполнения EXEC(...) уже ничего в процедуре не работает, и на печат не выводится
Fompro
Дата: 08.12.2000 17:15:49
Print before ||
VC++ + SQL-Debug (Or SQL2000 - Embedded debugger)
Павел
Дата: 12.12.2000 12:43:30
посмотри в этой конфе сабж "Откат триггера" присланный maximF от 12.12.2000
По моему у вас пряио противоположные проблемы.
maximF
Дата: 12.12.2000 13:48:27
Не совсем понял, что Павел имеет ввиду. Если можно, подробнее.
Кстати, в исходной проблеме выполнялся exec(@str) или обычный запрос? И как вызвать ошибку 'The query contained only ignored words'?
wlad
Дата: 13.12.2000 12:08:48
Слушай, ты что печать не можешь вставить в процедуру после каждого оператора? И отследить почему он падает..
Кстати @@error может быть и меньше нуля !
Wadim
Дата: 13.12.2000 17:04:24
Я вставляю печать. До вызова EXEC print @@Error выдает 0, после вызова EXEC print @@error уже ничего не выдает.
Эту ошибку можно вызвать например так: EXEC(CONTAINS(<column_name>, '.'))
Fompro
Дата: 13.12.2000 19:14:17
1.Я м.б. уже ничегo не понимаю, но предикат CONTAINS (содержащий) д.б. использован в WHERE предложении.
2. По поводу @@Error < 0. "Синус в военное время может быть равен 2, и даже 3".
Конечно, в error (int) можно засунуть всё, что угодно, но для пользовательских сообщений принято использовать error>=50000.
Wadim
Дата: 14.12.2000 07:10:10
Ну да
на самом деле EXEC(SELECT ..... FROM ..... WHERE ..... CONTAINS(<column_name>, '.')....)