>ciao ragazzi,
Ciao!
>visto che non li ho mai usati, qualcuno di voi potrebbe gentilmente
>spiegarmi come si usano i parametri di output per le stored procedures?
In che ambito ti servono? Solo database oppure ti serve come gestirle anche lato codice vb.net o c#?
Il link che ti ha indicato denis.basei è ok e direi che è piuttosto esplicativo..
Comunque provo a semplificarti la cosa con un esempio (non ho Management studio con me, quindi vado a memoria, se ci sono errori ti tocca correggere )..
USE tempdb
GO
-- creo la tabella di esempio
CREATE TABLE provaparametri
(
id int identity PRIMARY KEY CLUSTERED,
descrizione varchar(10) NOT NULL,
valore tinyint
)
-- popolo la tabella
INSERT INTO provaparametri (descrizione, valore)
SELECT 'UNO', 1
INSERT INTO provaparametri (descrizione, valore)
SELECT 'DUE', 2
INSERT INTO provaparametri (descrizione, valore)
SELECT 'TRE', 3
INSERT INTO provaparametri (descrizione, valore)
SELECT 'QUATTRO', 4
INSERT INTO provaparametri (descrizione, valore)
SELECT 'CINQUE', 5
GO
CREATE PROCEDURE proc_provaparametri
@descrizione varchar(10),
@valore tinyint,
@idinserito int NULL OUTPUT,
@conteggio int NULL OUTPUT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO provaparametri (descrizione, valore)
SELECT @descrizione, @valore
SET @idinserito = SCOPE_IDENTITY()
SELECT @conteggio = COUNT(*) FROM provaparametri
END
GO
DECLARE @miaDescrizione varchar(10)
DECLARE @mioValore tinyint
DECLARE @id int
DECLARE @count int
SET @miaDescrizione = 'SETTE'
SET @mioValore = 7
EXEC proc_provaparametri @miaDescrizione, @mioValore, @id OUTPUT, @count OUTPUT
-- controllo i valori ritornati dai parametri di output
SELECT
ID = @id
, Conteggio = @count
-- pulizia
DROP TABLE provaparametri
DROP PROCEDURE proc_provaparametri
Come vedi, per gestire più parametri di output, basta semplicemente aggiungerne più di uno . E per fare ciò è sufficiente mettere la parola chiave OUTPUT di fianco alla definizione del parametro. Nulla più..
Per utilizzarlo da codice, devi creare la collezione Parameters mettendo la corretta Direction dei parametri di output. Dopo l'esecuzione del comando, basta accedere in lettura alla collezione andando per nome parametro e ritornando il value.
Spero ti possa essere d'aiuto.
>grazie in anticipo!
Di nulla!
Alx81 =)
http://blogs.dotnethell.it/suxstellino