Help me funzione balorda!!!!??????

venerdì 05 ottobre 2007 - 11.13

kiaraluna Profilo | Newbie

mi potete aiutare con una funzione??????
Ho una funzione che viene richianata con 3 parametri.
se inserisco i parametri è tutto ok ma............io vorrei fare in modo che
se lascio uno o tutti e tre i parametri a ''(blank) o tutti 9 la query eseguita mi torna tutti i record

questa è la sintassi che ho usato:

CREATE FUNCTION dbo.fn_RICERCA1 (@cod char(3), @prov char(2),@comune varchar(100) )
RETURNS @d TABLE (Nome VARCHAR(10), Prov VARCHAR(3), NewCod VARCHAR(10),Cod00 VARCHAR(2),Indirizzo VARCHAR(100),Cap VARCHAR(9),Comune VARCHAR(100),Attivo VARCHAR(2),Cod VARCHAR(3))
AS
BEGIN
IF (@cod='999' OR @cod='') SET @cod = '%'

IF (@prov='99' OR @prov='') SET @prov='%'
IF (@comune='9999' OR @comune='') SET @comune='%'

INSERT INTO @d
SELECT DISTINCT Nome, Prov, NewCod, Cod00, Indirizzo, Cap, Comune, Attivo, Cod
FROM ANAG_N
WHERE (NewCod NOT LIKE '%*%') AND (SIGLAS='I') AND (Prov LIKE @prov) AND (COMUNE LIKE @comune) and (COD LIKE @cod)

RETURN
END



grazie in anticipo a chiunque mi possa aiutare

Kiaraluna

amelix Profilo | Expert

Hai provato così:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Andrea - http://www.MelisWeb.eu/

Teech Profilo | Expert

Puoi utilizzare le variabili istanziandone un valore nel caso in cui non le dichiari.
Nel tuo caso puoi operare così, ad esempio:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

kiaraluna Profilo | Newbie

avevo provato già a definire il valore di default della variabile come dici tu ma......................non funziona!
mi dice che la sintassi è corretta ma poi non mi resituisce nessuna riga quando vado ad eseguirlo da query analizer.
Ho trovato una soluzione ma ...................... è proprio una 'porcheria'.
quando assegno il valore nella if invece di
set @cod = '%' scrivo
set cod = '%_%'

funziona perfettamente ma ................................ mi rifiuto di pensare che non c'è un modo più ...."valido"..............non posso credere che sia questa la soluzione vera!
per ora ho tamponato così
ma non mi arrendo
se vi viene in mente qualcos'altro .......fatemelo sapere

ciao e grazie ancora
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