Newsgroup: it.lavoro.professioni.webmaster
Titolo: asp e sql

Ciao
ho un database  access su cui devo operare tramiite asp.Inviando,al 
database,stringhe di testo contenente apostrofi ottengo un errore 
poiche',nelle istruzioni sql,gli apici singoli hanno la funzione di 
racchiudere i contenuto dei campi.Quindi,se un campo contiene un 
apostrofo,e'  considerato un errore e l'inserimento non va avanti.Come posso 
risolvere il problema?
Io avrei pensato  di  sostiture gli  apostrofi con le entità corrispondenti 
ma non ho trova
-- 
-----------------------------------------------
Junior Silvestro Pomenti
Via Rossetti 25
04100 Latina
Web Site:  
http://www.jusipom.it
Email: 
jus...@fastwebnet.it
---------------------------------------------- 

Ciao
Ho un database  access su cui devo operare tramiite asp.Inviando,al 
database,stringhe di testo contenenti apostrofi ottengo un errore
 poiche',nelle istruzioni sql,gli apici singoli hanno la funzione di 
racchiudere il contenuto dei campi.Quindi,se un campo contiene un
 apostrofo,e'  considerato un errore e l'inserimento non va avanti.Come 
posso  risolvere il problema?
Io avrei pensato  di  sostiture gli  apostrofi con le entità corrispondenti 
ma non ho trovato il codice dell'entità e poi anche se  lo trovassi con che 
carattere lo potrei sostituire?
Ciao  e grazie


 risolvere il problema?
titoloEN=Replace(Request.Form("titoloEN"),"'","''")
<!--#include file="connessione.asp"-->
<%
titoloIT=Replace(Request.Form("titoloIT"),"'","''")
data=Request.Form("data")
citta=Request.Form("citta")
luogo=Request.Form("luogo")
categoriaIT=Request.Form("categoriaIT")
descrizioneIT=Replace(Request.Form("descrizioneIT"),"'","''")
titoloEN=Replace(Request.Form("titoloEN"),"'","''")
categoriaEN=Request.Form("categoriaEN")
descrizioneEN=Replace(Request.Form("descrizioneEN"),"'","''")
SQL = "INSERT INTO eventi 
(titoloIT,data,citta,luogo,categoriaIT,descrizione 
IT,titoloEN,categoriaEN,descrizioneEN)"
SQL = 
SQL&"VALUES(titoloIT='"&titoloIT&"','"&data&"','"&citta&"','"&luogo&"',
'"&categoriaIT&"',descrizioneIT='"&descrizioneIT&"',titoloEN='"&titoloEN&"',
'"&categoriaEN&"',descrizioneEN='"&descrizioneEN&"')"
Conn.Execute(SQL)
Response.Redirect "gestione-eventi.asp"
%>

 risolvere il problema?
Mai usato access ma per problemi del genere di solito c'è una funzione 
di escaping dei caratteri a disposizione.

 ha scritto nel messaggio 
news:eookb4$cts$2...@aioe.org...


 con le virgolette;è cosi'?
Esatto... utilizzando quel tipo di inserimento, se fai ad esempio 
cn.execute("UPDATE Utenti SET Utenti.Gruppo = 'dell''arcolaio';")
nel campo Gruppo della tabella Utenti troverai "dell'arcolaio" con un 
solo apostrofo.
HTH


Ciao,
semplicemente sostituisci l'apice singolo con due apici (attenzione, non
virgolette!).
Quindi, prima di inserire in database, formatta le tue stringhe come segue:
dim testo
testo = replace(testo, "'", "''")
Ciao!
Paolo
----------------------------------------
www.aspcodecms.com
 - CMS software
www.aspcodehost.com
 - servizi hosting
----------------------------------------

poiche',nelle istruzioni sql,gli apici singoli hanno la funzione di 
il problema non riguarda il linguaggio che usi per le asp ma come
scrivi le query sql.
nell'sql la regola è: raddoppiare l'apostrofo.
tipo:
dim s
s = "SELECT * FROM tabella WHERE comune='L''AQUILA'"
ti conviene farti una funzione per la quale far passare tutti i valori
stringa che raddoppi l'apostrofo.  in questo modo ti tieni anche un
po' più al sicuro da attacchi di sql injection.
-- 
abbraccio espedienti 365 giorni l'anno.
(generata da: 
http://www.phibbi.com/extra/gswe.php
)
il mio indirizzo email è valido ma filtrato: inserite 
la parola newsgroup nel subject per essere letti.