Between fra smallmoney...

venerdì 17 ottobre 2008 - 11.09

gabriel81 Profilo | Junior Member

La mia Stored procedure:

CREATE PROC [dbo].[SP_FindSpese]

@F_DtDa smalldatetime = '01/01/1970',
@F_DtA smalldatetime = '31/12/2050',
@F_Fornitore nvarchar(50) = '',
@F_ImportoDa smallmoney = 0,
@F_ImportoA smallmoney = 214748
AS

BEGIN
SET NOCOUNT ON;
SELECT [RagSociale],[DataSpesa],[Importo]

FROM [dbo].[Spese]
WHERE [RagSociale] LIKE '%' + @F_Fornitore + '%'
AND [DataRifFornitore] BETWEEN @F_DtDa AND @F_DtA
AND [Importo] BETWEEN @F_ImportoDa AND @F_ImportoA
END

RagSociale e date funzionano.
Come mai se non imposto il parametro F_ImportoA non restituisce niente?
se nel form metto "importo A" funziona, se non lo metto restituisce 0 righe.
Invece il parametro "Importo da" del form influenza correttamente le select e se non lo metto prende 0 come default

lbenaglia Profilo | Guru

>Come mai se non imposto il parametro F_ImportoA non restituisce
>niente?
>se nel form metto "importo A" funziona, se non lo metto restituisce
>0 righe.
>Invece il parametro "Importo da" del form influenza correttamente
>le select e se non lo metto prende 0 come default

Bisognerebbe capire cosa fa "la form".
Il dubbio che mi viene è che quando non specifichi "Importo A" in realtà la form valorizza ugualmente @F_ImportoA a "qualcosa"...
Lato SQL non vedo errori logici...

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

gabriel81 Profilo | Junior Member

La costruzione dei parametri la faccio dinamicamente mediante:

SELECT PARAMETER_NAME AS Nome,PARAMETER_MODE AS Direzione
FROM INFORMATION_SCHEMA.PARAMETERS
WHERE SPECIFIC_NAME=@StoredProcedure

Ho provato ad aggiungere manualmente:

_cmd.Parameters.Item("@F_ImportoA").Value = Nothing
e adesso funziona
Però prima di ciò gli passavo il textbox.text sia per "importo da" che per "importo a".
Però mentre "importoDa" funziona con il textbox.text vuoto, "importoA" vuole il settaggio a nothing del parametro....

mica sai perchè?

lbenaglia Profilo | Guru

>mica sai perchè?
No. Dovresti lanciare una sessione di Profiler per vedere cosa viene eseguito in realtà su SQL Server...

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

gabriel81 Profilo | Junior Member

Dovresti lanciare una sessione di Profiler per vedere cosa viene eseguito in realtà su SQL Server...

Ehmm.... mi sa che dovrò acculturarmi sull'argomento... tu mi sai dare qualche dritta veloce? poi per il resto mi arrangio...

lbenaglia Profilo | Guru

>Ehmm.... mi sa che dovrò acculturarmi sull'argomento... tu mi
>sai dare qualche dritta veloce? poi per il resto mi arrangio...
http://msdn.microsoft.com/en-us/library/ms181091.aspx

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
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