Обработка ошибок хранимой процедуры с известными ошибками, вызываемыми из vb.net
У меня есть sql server2000 зашифрованная хранимая процедура. Я не могу их изменить. Как правило, все процедуры манипулируют построчно различными таблицами с помощью курсоров и т. Д.
Когда хранимая процедура выполняется на экране Query Analyzer, я вижу ошибку, возникающую между ними, но процедуры продолжаются до тех пор, пока все записи не будут обработаны. Такое поведение приемлемо для клиента.
Теперь мне нужно автоматизировать процесс с помощью приложения Windows VB.net 2002. Я вызываю процедуру с vb.net, но программа выдает ошибку времени выполнения при первом появлении ошибки в хранимой процедуре.
Может ли кто-нибудь подсказать мне, как обрабатывать и программировать обработку ошибок, чтобы продолжить обработку, пока не будут обработаны все записи. Я буду очень признателен за вашу помощь.
2 ответа
Так как хранимая процедура зашифрована и вы не можете ее изменить. Одним из вариантов будет создание другой хранимой процедуры, которая будет действовать как оболочка для зашифрованной.
Пример... псевдо-TSQL
CREATE PROCEDURE MyWrapperProc
(
@MyParameters somedatatypes
)
EXEC MyEncrytedStoreProc @MyParameters
Затем измените ваш вызов VB.NET с помощью процедуры Wrapper. В SQL 2000 нет TRY-CATCH. Я думаю, что это должно позволить запускать процесс Encrypted без всплывающей ошибки до вашего кода VB.NET, если вы явно не вызовете ошибку.