Newsgroup: it.comp.www.asp
Titolo: Ricerche con car jolly nelle stored procedures

Prossimamente mi occorrerà realizzare delle ricerche  con l'utilizzo di
stored procedures.
Passando un parametro diciamo @stringa varchar(100) da ASP alla procedura
(MS SQL SERVER), come faccio ad utilizzare i caratteri jolly per la ricerca?
Diciamo che @stringa contiene: 'mar' e io voglio utilizzarlo nella procedura
per cercare tutte le parole che iniziano con mar.
Basta usare LIKE e mettere il % nel parametro?
SELECT ... FROM .. WHERE COLUMN LIKE @stringa  (dove @stringa = 'mar%') ??
Mi sembra che passando i vari ' apici e % percentuali nei parametri di una
SP, vengano interpretati come caratteri qualunque o sbaglio?
Grazie
xMANIGHTx

: Prossimamente mi occorrerà realizzare delle ricerche  con l'utilizzo di
: stored procedures.
: Passando un parametro diciamo @stringa varchar(100) da ASP alla procedura
: (MS SQL SERVER), come faccio ad utilizzare i caratteri jolly per la
ricerca?
?
: Diciamo che @stringa contiene: 'mar' e io voglio utilizzarlo nella
procedura
: per cercare tutte le parole che iniziano con mar.
: Basta usare LIKE e mettere il % nel parametro?
che iniziano.. LIKE 'mar%'
comprese LIKE '%mar%'
: SELECT ... FROM .. WHERE COLUMN LIKE @stringa  (dove @stringa = 'mar%') ??
: Mi sembra che passando i vari ' apici e % percentuali nei parametri di una
: SP, vengano interpretati come caratteri qualunque o sbaglio?
soluzione:
passa alla stored procedure la stringa GIA'_CON_APICI.
<Samlpe>
strSP="SP_TUA_STORED_PROCEDURE '"&tuastringadiricerca&"'"
Set Rs=Conn.Execute(strSP)
</Sample>
--
CIAO!
Gusher

che iniziano.. LIKE 'mar%'
comprese LIKE '%mar%'
Questo funziona con sql dinamico ma non credo che avendo un @parametro =
mar%
e avendo nelal procedurea un SELECT... WHERE col LIKE @parametro il
risultato contenga tutti i nomi che iniziano con "mar".
Credo che la procedura cerchi piuttosto tutte le stringhe uguali a  "mar%"
compreso il % come se fosse un carattere qualunque... stessa cosa avviene
con gli apici. Infatti l'apice ' se passatto in una stringa/parametro, non
occorre sia raddoppiato '' con il carattere di escape, dato che la procedura
prende il parametro stringa con tutti i suoi caratteri.
xMANIGHTx

: che iniziano.. LIKE 'mar%'
: comprese LIKE '%mar%'
:
: Questo funziona con sql dinamico ma non credo che avendo un @parametro =
: mar%
SQL dinamico...what?
: e avendo nelal procedurea un SELECT... WHERE col LIKE @parametro il
: risultato contenga tutti i nomi che iniziano con "mar".
: Credo che la procedura cerchi piuttosto tutte le stringhe uguali a  "mar%"
: compreso il % come se fosse un carattere qualunque... stessa cosa avviene
: con gli apici. Infatti l'apice ' se passatto in una stringa/parametro, non
: occorre sia raddoppiato '' con il carattere di escape, dato che la
procedura
: prende il parametro stringa con tutti i suoi caratteri.
il "%" non devi passarlo insieme alla stringa....
CREATE PROCEDURE [SP_SEARCH_ARTIST]
@strSearch varchar
AS
SELECT Artisti.IDArtista, Artisti.Nome FROM Artisti
WHERE Artisti.Nome LIKE '%'+@strSearch+'%'
ORDER BY Artisti.Nome, Artisti.Cognome
--
CIAO!
Gusher

 risultato contenga tutti i nomi che iniziano con "mar".
credici... e prova... ^_^
io lo uso e funziona...
-- 
emy

% e come lo passo?
xMANIGHTx

: % e come lo passo?
ripeto(3a volta)
quello lo devi gestire lato SQL(stored procedure)....
--
CIAO!
Gusher

Ok provo Emy e ti faccio sapere ;)
xMANIGHTx