salve Daniela62,
Daniela62 ha scritto:
Ciao a tutti!
Ho una stored procedure un pò complessa che già quando provo ad eseguirla in Access mi dà come errore : "devi dichiarare la variabile
@Cerca"
La variabile @Cerca è dichiarata tra i parametri di input come
@Cerca nvarchar(50)
la riga di codice incriminata è:
SET @where ='WHERE NomeProdotto LIKE "%" +@Cerca+ "%" '
io penso che sia un problema di concatenazione di stringhe;
ho provato a suddividere ulteriormente @where ma arrivo sempre ad avere lo stesso tipo di errore.
se parli di probabile problematica di "concatenazione di stringhe" allora e' probabile tu stia eseguendo codice T-SQL dinamico che farai effettivamente eseguire ad una chiamata tipo
EXEC (@cmd)
ovvero
EXECUTE sp_executesql @cmd
dove @cmd contiene il comando da eseguire..
ed in effetti, lo spezzone di codice che utilizzi
SET @where ='WHERE NomeProdotto LIKE "%" +@Cerca+ "%" '
mi fa cosi' pensare...
viene per cui passata la stringa "@Cerca" dentro il testo del filtro @where invece del valore di @Cerca..
hai solo sbagliato la gestione della costruzione della stringa di filtro..
DECLARE @where varchar(128)
DECLARE @Cerca varchar(10)
SET @Cerca = 'Andrea'
SET @where ='WHERE NomeProdotto LIKE ''%' + @Cerca + '%'''
SELECT @where
come vedi in questo esempio, il risultato e' corretto...
tra le altre cose, non puoi utilizzare il doppio apice (") ma devi usare 2 apici semplici ('')
saluti