stringa SQL Gestione Apostrofo
Hai un problema con Excel? 
stringa SQL Gestione Apostrofo
di Salvo18 (utente non iscritto) data: 23/09/2015 17:15:49
Buonasera,
ho una stringa SQL di cui mi servo per fare una select sul mio database in mysql. Per gestire il carattere apostrofo(') faccio un replace con il doppio apice('') per non incorrere in errore. Il problema è che poi mi ritrovo il doppio apice anche sul db. Non viene effettuata la sostituzione. come mai? grazie per l'aiuto
dim x,a,sSQL as String
x="d'Aosta"
a=replace(x,"'","''")
sSQL = "SELECT MAX(Id) FROM tblcustomer WHERE Name=" & a
conn1.Execute sSQL2, , 1 |
di Marius44 data: 23/09/2015 17:58:30
Ciao Salvo
ma, scusa la banalità, non puoi fare un'altra volta Replace al contrario prima di scrivere sul database?
Ciao,
Mario
di Salvo18 (utente non iscritto) data: 24/09/2015 09:23:11
se faccio un'altra volta il replace poi mi dà errore nell'ultima riga in cui lancio la stringa sql.
di Vecchio Frac data: 24/09/2015 13:25:55
Questo è un dei grandi problemi dell'iniezione diretta della variabile nella stringa sql.
Ti risolvi felicemente la vita ricorrendo alle query parametriche.
Accludo lo scheletro ridottissimo all'osso del tuo esempio tratto da un mio programma reale.
Dim qdf As DAO.QueryDef
Set qdf = CurrentDb.CreateQueryDef("", "PARAMETERS p1 Text; " & _
"SELECT MAX(Id) FROM tblcustomer WHERE Name=p1;")
qdf.Parameters("p1") = "d'Aosta"
qdf.Execute dbFailOnError
|
Vuoi Approfondire?