Discussione:
query sql e apici
(troppo vecchio per rispondere)
Lucio
2003-09-10 07:10:01 UTC
Permalink
Ciao,
Io ho risolto il problema sostituendo il carattere ' con ` nei campi testo
del db.
es. 'd`Alessio'
Utopian [ k n k ]
2003-09-10 07:27:18 UTC
Permalink
fai il sapiutello?
no, è la sua frase di rito di apertura :o)

io ho trovato questo:
WHERE (Cognome LIKE '%d[escape'']alessio%')

--
comunque il probl non sono solo gli apici.
vorrei permettere l'inserimento di tutti i caratteri non validi con una corretta conversione degli escape e senza farmela a mano..
possibile che un metodo non ci sia? oioi.. :)
Mik
2003-09-10 07:30:20 UTC
Permalink
Utopian [ k n k ] ebbe il coraggio di dire:
(è solo quoting automatico)
Post by Utopian [ k n k ]
WHERE (Cognome LIKE '%d[escape'']alessio%')
Ma che altri caratteri ci sono che non vanno bene??

MIk
Utopian [ k n k ]
2003-09-10 07:38:26 UTC
Permalink
Post by Mik
Ma che altri caratteri ci sono che non vanno bene??
teoricamente nessun altro
praticamente quando si ha a che fare con utonti.........
ho trovato qualcosa:
http://gladstone.uoregon.edu/~jallen/string_utils.html
mi faccio 2 funzioni e vediamo come va ;-)
Mik
2003-09-10 07:29:29 UTC
Permalink
Lucio ebbe il coraggio di dire:
(è solo quoting automatico)
x Mik
che intendi dire con
fai il sapiutello?
e il bello è che l'ho scritto!!!!!!!!!!!!!!!!!!

MIk
Akuma
2003-09-10 07:31:25 UTC
Permalink
x Mik
che intendi dire con
fai il sapiutello?
Lucio ebbe il coraggio di dire:
(è solo quoting automatico)


Lucio, cosa c'e' scritto tra parentesi ?
Dovresti forse informarti sul significato della parola quoting :)


Akuma
Utopian [ k n k ]
2003-09-10 08:27:51 UTC
Permalink
ma cosè tro?
string suppongo. cmq guardatevi il link che ho postato qua sopra.
funziona e non rallenta (o almeno con i pc d'oggi non ci son problemi) :o)
Stefano
2003-09-10 10:34:28 UTC
Permalink
ho una query che mi fa un select su una tabella.
funziona tutto correttamente tranne ad esempio quando cerco: WHERE cognome='d'alessio'
spero di essermi spiegato.
come faccio con i nomi che contengono caratteri speciali?
c'è una specie di escape e unescape automatico per ciò?
Devi semplicemente raddoppiare gli apici presenti nella stringa della
preposizione where così da diventare: WHERE cognome='d''alessio'
Ciao. Stefano.
Utopian [ FTa ]
2003-09-10 19:58:53 UTC
Permalink
Stringa = "D'ALESSIO"
Sql = "SELECT * FROM Tabella WHERE cognome = " & Chr$(34) & Stringa &
Chr$(34)
Ho provato e funziona!
a me sql non me l'accetta come valida
anche se la scrivo come dici, poi il risultato della stringa sql sarà:
SELECT * FROM tabella WHERE cognome LIKE 'd'alessio'

--
cosa avete contro la funzione di escape ed unescape?
non si notano rallentamenti visibili e mi funziona con tutti i caratteri :-D
non potevo chiedere di meglio.. anzi.. io pensavo che visual basic ce le
avesse già incluse ed invece me le son dovute creare...
Fly81
2003-09-11 13:04:34 UTC
Permalink
Temo di no, ma, a mia volta, non insisto perchè non ho verificato (con le ",
intendo).
Credo anche che (forse solo SQL Server) sia possibile definire quale debba
essere il default.
C'è anche da dire (ma dovrei cercare per citare un esempio reale) che
ADO+SQL Server (forse è più corretto parlare di standard SQL ANSI) non ami
molto le " interne, per esempio in un CASE WHEN nome_campo<>"" e che
pretenda gli apicini.
C'è da precisare che io ho sempre usato database di Access97 e
connessione DAO e questi codici che ho scritto funzionano...
Probabilmente con SqlServer e/o ADO possono dare problemi, non
saprei...

Stefano
Utopian [ FTa ]
2003-09-11 14:23:01 UTC
Permalink
Post by Fly81
Probabilmente con SqlServer e/o ADO possono dare problemi
infatti.

magari domani mattina faccio un paio di prove per darvi il problema che mi
viene fuori.
comunque semra che stiate ignorando la soluzione che ho trovato, cioè quella
di crearsi due sempli funzioncine di escape ed unescape al fine di evitare
l'inserimento nel database di valori dannosi.

Continua a leggere su narkive:
Loading...