Intercettare Errore SQL Server (RAISERROR)

lunedì 15 novembre 2010 - 17.59
Tag Elenco Tags  C#  |  .NET 2.0  |  Visual Studio 2005  |  SQL Server 2005  |  SQL Server Express

skraus Profilo | Junior Member

In SqlServer 2005 Express Ed. ho la seguente SP.

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

La quale verifica la partita IVA del cliente nella tabella clienti, se la stessa è già presente genera un errore (RAISERROR), diversamente procede all'INSERT. Ho testato la SP con dei parametri fittizi direttamente dal SQL Server Managment Studio ed ottengo tra i Messaggi la visualizzazione dell'errore, per cui la SP la considero funzionante. Il parametro di output (@idCliente) resta invalorizzato (null) e come RETURN_VALUE ho 0.

Il mio problema è recuperare/intercettare l'errore invocato nella SP, nel caso in cui il valore di partita IVA sia già presente in tabella, dalla pagina .aspx.

La pagina aspx, richiama l'esecuzione della SP mediante un SQLDataSource. La SP viene eseguita senza generare alcun errore, tant'è che in debug l'esecuzione passa all'evento inserting, anche se risutano 0 row Affected.

Grazie a tutti.
Sk

===========================================================================================
RISOLTO

Il problema era causato dal fatto che nell'istruzione RAISERROR della SP il valore della proprietà seveity era impostato troppo basso per essere rilevato dalle istruzioni TRY...CATCH, infatti dette istruzioni intercettano errori la cui severity sia maggiore di 10, per cui impostando ad 11 il valore funziona.

Grazie ancora e scusate.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5