Come settare un parametro output

martedì 28 ottobre 2008 - 16.30

gabriel81 Profilo | Junior Member

Come faccio a dire a SQL Server di valorizzare un parametro output con il risultato di una query tipo:

SELECT SUM(Importo) as Conteggio FROM TABELLA

Ho provato con SET @Conteggio = Conteggio ma non me lo prende.... sigh

alx_81 Profilo | Guru

>Come faccio a dire a SQL Server di valorizzare un parametro output
>con il risultato di una query tipo:
>
>SELECT SUM(Importo) as Conteggio FROM TABELLA
>
>Ho provato con SET @Conteggio = Conteggio ma non me lo prende....
Ti faccio un esempio al volo, credo tu intenda all'interno di una stored procedure, vero?

USE tempdb; GO IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID('dbo.Proc_ParamOut')) DROP PROC dbo.Proc_ParamOut GO CREATE PROC dbo.Proc_ParamOut @numero smallint , @moltiplicatore smallint , @risultato int = 0 OUTPUT AS BEGIN SET NOCOUNT ON; SELECT @risultato = @numero * @moltiplicatore END GO -- eseguo la sp DECLARE @OutputValue smallint EXEC dbo.Proc_ParamOut 100, 100, @OutputValue OUTPUT SELECT @OutputValue GO

Al posto della moltiplicazione metti la tua count così:

SELECT @risultato = SUM(Importo) FROM TABELLA

e sei a cavallo
PS: Ovviamente cambia anche i parametri
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

gabriel81 Profilo | Junior Member

Sai che però non riesco a intercettare il parametro di output da vb.net?
essendo un parametro output credevo bastasse usare _cmd.Parameters("@SommaImporti").Value
ma a quanto pare non è corretto perchè mi risponde 0

Invece da SQL Server se eseguo la SP, ritorna il valore giusto

alx_81 Profilo | Guru

>Sai che però non riesco a intercettare il parametro di output da vb.net?
>essendo un parametro output credevo bastasse usare _cmd.Parameters("@SommaImporti").Value
>ma a quanto pare non è corretto perchè mi risponde 0
hai impostato la direction del parametro?

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

gabriel81 Profilo | Junior Member

Certo che sì!!
Però ho notato che se faccio così

SELECT @SommaImporti= SUM(Importo) FROM [dbo].[Costi]
WHERE [RagSociale] LIKE '%' + @F_Fornitore + '%'
AND [DataRifFornitore] BETWEEN @F_DtDa AND @F_DtA;
Non funziona
La stessa query senza where funziona.
Premetto che in questa SP la stessa identica query con gli stessi where viene eseguita prima per restituire un recordset ed effettivamente restituisce righe...
Inoltre se eseguo la SP da console di SQL Server risponde bene...

SIGH

alx_81 Profilo | Guru

>Certo che sì!!
>Però ho notato che se faccio così
>
>SELECT @SommaImporti= SUM(Importo) FROM [dbo].[Costi]
>WHERE [RagSociale] LIKE '%' + @F_Fornitore + '%'
> AND [DataRifFornitore] BETWEEN @F_DtDa AND @F_DtA;
>Non funziona
>La stessa query senza where funziona.
>Premetto che in questa SP la stessa identica query con gli stessi
>where viene eseguita prima per restituire un recordset ed effettivamente
>restituisce righe...
mmmmmh.. strano.. prova a postare la stored procedure..

>Inoltre se eseguo la SP da console di SQL Server risponde bene...
Questo potrebbe essere un problema di formato con cui passi le date..

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

gabriel81 Profilo | Junior Member

Guarda, l'ho risolto ! Grazie lo stesso.
Però se vuoi sono incasinatissimo, perchè ora che ho finito la gestione delle fatture, non sò come stamparle!
Ho aperto un thread http://dotnethell.it/forum/messages.aspx?ThreadID=26311 dove spiego.. se hai voglia tu che hai più esperienza
http://www.myspace.com/madmack1981
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