2009-08-07 3 views
0

sql server2000 encypted 저장 프로 시저가 있습니다. 나는 그들을 수정할 수 없다. 일반적으로 모든 절차는 커서를 사용하여 행마다 다른 테이블을 조작합니다.vb.net에서 알려진 오류가있는 저장 프로 시저의 오류 처리

쿼리 분석기 화면에서 저장 프로 시저를 실행하면 오류가 발생하지만 모든 레코드가 처리 될 때까지 프로 시저가 계속됩니다. 이 동작은 클라이언트가 수락 가능합니다.

이제 VB.net 2002 Windows 응용 프로그램을 사용하여 프로세스를 자동화해야합니다. vb.net에서 프로 시저를 호출하지만 프로그램은 저장 프로 시저의 첫 번째 오류 발생시 런타임 오류를 발생시킵니다.

모든 레코드가 처리 될 때까지 처리를 계속하기 위해 어느 사람이 오류 처리를 처리하고 프로그래밍하는 방법을 안내 할 수 있습니까? 나는 너의 도움에 매우 감사 할 것이다.

답변

0

.Net 1.0에서 어떻게해야할지 모르겠습니다.

2.0 이상에서는 연결의 속성을 True로 설정하고 InfoMessage 이벤트를 처리합니다. 그러나 MSDN의 빠른 확인은 .Net 2.01.1까지 사용할 수 없다고 표시합니다.

0

저장 프로 시저가 암호화되어 있으므로 수정할 수 없습니다. 한 가지 옵션은 다른 저장 프로 시저를 만들어 암호화 된 래퍼의 래퍼 역할을하는 것입니다.

예 ... 의사 TSQL

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

는 그런 다음 VB.NET 호출이 래퍼 시저를 사용하여 변경할 수 있습니다. SQL 2000에는 TRY-CATCH가 없습니다. 암호화 된 proc가 명시 적으로 오류를 발생시키지 않는 한 VB.NET 코드로 오류를 버블 링하지 않고 실행할 수 있어야한다고 생각합니다.

+0

오류가 계속 발생하면 중첩 수준에 관계없이 클라이언트 연결로 직접 이동합니다. 2k5 시도/catch 만 변경할 수 있습니다. –