14 messaggi dal 09 ottobre 2001
Ciao a tutti ho un problema (credo) banale con una stored procedure...
devo salvare un comnado SQL in un campo di testo di una tabella, ma se passandogliela da codice ASP fa casino con gli apici dei valori della query...

cioè:

sql="SELECT * FROM Tabella WHERE campo='pippo%'";
var sp_str="[nome_sp] @strsql='" + sql + "'";
conn.Execute(sp_str);

mi dà errore perchè interpreta gli apici(') sul valore di campo invece di considerarli parte della stringa
se li tolgo mi dà errore l'esecuzione della query che avviene subito dopo la SP...

come posso fare?

grazie
Raddoppia gli apici:

sql="SELECT * FROM Tabella WHERE campo='pippo%'"; 
sql = sql.replace(/(')/gi, "''");
var sp_str="[nome_sp] @strsql='" + sql + "'"; 
conn.Execute(sp_str);


Fammi sapere!

Matteo Casati
GURU4.net
2.410 messaggi dal 13 febbraio 2003
Contributi
"ilpado"

Ciao a tutti ho un problema (credo) banale con una stored procedure...

ciao

devo salvare un comnado SQL in un campo di testo di una tabella, ma se passandogliela da codice ASP fa casino con gli apici dei valori della query...

cioè:

sql="SELECT * FROM Tabella WHERE campo='pippo%'";
var sp_str="[nome_sp] @strsql='" + sql + "'";
conn.Execute(sp_str);

mi dà errore perchè interpreta gli apici(') sul valore di campo invece di considerarli parte della stringa
se li tolgo mi dà errore l'esecuzione della query che avviene subito dopo la SP...

come posso fare?

come ti ha suggerito m.casati raddoppia gli apici inoltre per evitare sql injection usa i parametri quindi usa stored procedure e non query inline nel codice
a questo momento non devi preoccuparti di apici doppi ecc. ma usi unicamente i parametri
http://www.aspitalia.com/articoli/db/storedqueries.aspx
Vero... io mi sono limitato al problema specifico ma l'uso corretto delle sp è sicuramente preferibile.

Christian, sei sempre un passo più avanti!

Matteo Casati
GURU4.net
14 messaggi dal 09 ottobre 2001
perfetto, mi sembrava ci fosse qualcosa del genere per il discorso apici!

cmq non credo che sia un uso non corretto della SP, io quell'istruzione SQL non gliela passo per farla eseguire poi dalla SP, gliela passo per memorizzarla come stringa in un campo, se gli passavo i singoli campi avrei poi dovuto ricostruirla nella SP per memorizzarla quando invece nella pagina ce l'avevo già bella e pronta da passare....sbaglio?

poi nella pagina ASP la stringa sql la costruisco si con i parametri ripresi dal form, quella select riportata prima era un esempio per mostrare gli apici...
Hai visto Christian he ho fatto bene io a fermarmi al problema specifico?

Matteo Casati
GURU4.net
2.410 messaggi dal 13 febbraio 2003
Contributi
"ilpado" <ilpado> ha scritto nel messaggio news:250328@...

cmq non credo che sia un uso non corretto della SP, io quell'istruzione SQL
non gliela passo per farla eseguire poi dalla SP, gliela passo per memorizzarla come stringa in un campo, se gli passavo i singoli campi avrei
poi dovuto ricostruirla nella SP per memorizzarla quando invece nella pagina ce l'avevo già bella e pronta da passare....sbaglio?
poi nella pagina ASP la stringa sql la costruisco si con i parametri ripresi dal form, quella select riportata prima era un esempio per mostrare
gli apici...

ok ma allora se usi stored procedure non vedo dove sta il problema degli apici?
Non ho ben capito perchè memorizzi in un campo una stringa sql
2.410 messaggi dal 13 febbraio 2003
Contributi
"m.casati"

Hai visto Christian he ho fatto bene io a fermarmi al problema specifico?

ROTFL

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.