Обработка ошибок хранимой процедуры с известными ошибками, вызываемыми из vb.net - PullRequest
0 голосов
/ 07 августа 2009

У меня есть sql server2000 зашифрованная хранимая процедура. Я не могу их изменить. Обычно все процедуры манипулируют различными таблицами, используя курсоры и т. Д.

Когда хранимая процедура выполняется на экране Query Analyzer, я вижу ошибку, возникающую между ними, но процедуры продолжаются до тех пор, пока все записи не будут обработаны. Такое поведение приемлемо для клиента.

Теперь мне нужно автоматизировать процесс с помощью приложения Windows VB.net 2002. Я вызываю процедуру с vb.net, но программа выдает ошибку времени выполнения при первом появлении ошибки в хранимой процедуре.

Может ли кто-нибудь подсказать мне, как обрабатывать и программировать ошибки, чтобы продолжить обработку, пока не будут обработаны все записи. Я буду очень признателен за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 07 августа 2009

Поскольку хранимая процедура зашифрована, вы не можете ее изменить. Одним из вариантов будет создание другой хранимой процедуры, которая будет выполнять функцию оболочки для зашифрованной.

Пример ... псевдо-TSQL

CREATE PROCEDURE MyWrapperProc
(
   @MyParameters somedatatypes
)
EXEC MyEncrytedStoreProc @MyParameters

Затем измените ваш вызов VB.NET с помощью процедуры Wrapper. В SQL 2000 нет TRY-CATCH. Я думаю, что это должно позволить запускать процесс Encrypted без всплывающей ошибки в коде VB.NET, если вы явно не вызовете ошибку.

0 голосов
/ 07 августа 2009

Я не уверен, как это сделать в .Net 1.0.

В 2.0 и более поздних версиях я установил бы для свойства FireInfoMessageEventOnUserErrors соединения значение True и обработал событие InfoMessage. Но быстрая проверка MSDN показывает, что они недоступны до .Net 2.0 и 1.1 соответственно.

...