Gestione degli errori in una stored procedure

giovedì 03 aprile 2008 - 16.56

trinity Profilo | Guru

salve ragazzi,
io spesso creo delle stored all'interno delle quali vengono eseguite delle query tramite parameters.

Io vorrei gestire ma non so come fare perchè non lo mai fatto dei messaggi di errore.
Mi spiego meglio:
IO tramite compilatore lancio la stored sql che risiede nel db sql, ovviamente nel momento che la richiamo per eseguirla le invio anche i dati dei parametri. Se capita che i parametri passati sono errati e pertanto la stored o meglio dire la query di select oppure di insert oppure altro genere non viene eseguita, vorrei che sql mi restituisca un messaggio di errore oppure un id che io posso gestire e creare di conseguenza una giusta segnalazione di errore all'operatore.

Mi potete dare un consiglio su come fare?

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

speedx Profilo | Junior Member

su SQL 2005 Try Catch come in linguaggi .Net

MSDN o Book on line c'è la documentazione



//// Marcello C.

alx_81 Profilo | Guru

>salve ragazzi,
Ciao!

>io spesso creo delle stored all'interno delle quali vengono eseguite delle query tramite parameters.
>Io vorrei gestire ma non so come fare perchè non lo mai fatto dei messaggi di errore.
>Mi spiego meglio:
>IO tramite compilatore lancio la stored sql che risiede nel db
>sql, ovviamente nel momento che la richiamo per eseguirla le
>invio anche i dati dei parametri. Se capita che i parametri passati
>sono errati e pertanto la stored o meglio dire la query di select
>oppure di insert oppure altro genere non viene eseguita, vorrei
>che sql mi restituisca un messaggio di errore oppure un id che
>io posso gestire e creare di conseguenza una giusta segnalazione
>di errore all'operatore.
>Mi potete dare un consiglio su come fare?
Prima vorrei capire meglio il tuo problema. Tu vuoi fare un controllo preventivo sui parametri prima di eseguire la query? Oppure vuoi restituire errore se con particolari valori si verifica un errore? Che tipi di errore vuoi gestire? Prova a farci un esempio di errore che vorresti gestire e come lo vorresti gestire.
Ci sono vari modi:

Se hai SQL Server 2005, uno è il try catch che indica anche speed-X, la cui reference è

TRY..CATCH (transact-sql)
http://msdn2.microsoft.com/en-us/library/ms175976.aspx

Per SQL Server 2000 o precedenti hai la variabile @@ERROR, da usare dopo lo statement che potenzialmente genera errore:

@@ERROR (transact-sql)
http://msdn2.microsoft.com/en-us/library/ms188790.aspx

oppure se non sono necessariamente eccezioni sollevate da SQL Server puoi gestirle tu utilizzando la RAISERROR laddove vuoi lanciare un errore:

RAISERROR (transact-sql)
http://msdn2.microsoft.com/en-us/library/ms178592.aspx

Con quest'ultima e semplici IF puoi decidere quando lanciare una eccezione personalizzata. Ricorda inoltre che la RAISERROR può essere usata anche nel CATCH del primo costrutto proposto.

Ciao!
Alx81 =)

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
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