Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[SQL] Apostrofo nelle stringhe

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[SQL] Apostrofo nelle stringhe

Messaggioda DilanDog » mar ott 31, 2006 11:01 am

Una curiosità: l'unico modo di gestire stringhe contenenti il carattere dell'apostrofo nelle query sql è quello di passare ogni stringa attraverso una funzione che inserisca il doppio apostrofo?

Esempio: devo ricercare una frase tipo "L'aurora boreale" in questo modo:
Codice: Seleziona tutto
strTesto="L'aurore boreale"
strSql="SELECT * FROM Tabella WHERE Testo='" + strTesto + "'"

Eseguendo la query mi da un errore a meno che non elaboro la variabile strTesto sostituendo il carattere ' con '' (che non sono le virgolette ma è un apostrofo aggiuntivo). Non esiste altro modo? E qualcuno sa se ci sono delle funzioni già pronte allo scopo in VB o in ASP ?
Avatar utente
DilanDog
Senior Member
Senior Member
 
Messaggi: 208
Iscritto il: ven apr 15, 2005 9:13 am
Località: Milano

Messaggioda Rumez » mar ott 31, 2006 11:05 am

Codice: Seleziona tutto

str = "L'aurora boreale"

str = Replace( str, "'", "''" )

Avatar utente
Rumez
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1783
Iscritto il: mar mag 13, 2003 2:08 pm

Messaggioda Boo » mar ott 31, 2006 11:14 am

Davvero ti sei perso per così poco?

Codice: Seleziona tutto
strTesto="L\'aurore boreale"
Avatar utente
Boo
Silver Member
Silver Member
 
Messaggi: 1276
Iscritto il: sab dic 04, 2004 3:41 pm


Messaggioda Robby78 » mar ott 31, 2006 11:35 am

Boo ha scritto:Davvero ti sei perso per così poco?

Codice: Seleziona tutto
strTesto="L\'aurore boreale"


penso che Dylan non voglia elaborare la stringa... mettere \' non è molto diverso da scrivere ''; credo che sia impossibile non trattare la stringa.
Io per comodità uso la funzione replace suggerita da Rumez: in questo modo non mi preoccupo di quanti apostrofi ci sono nè della loro posizione nella stringa; inoltre la puoi usare di default, visto che non ha controindicazioni se anche la stringa non contiene alcun apice.
Attento che dovresti fare la stessa operazione anche per i doppi apici...
Povera patria! Schiacciata dagli abusi del potere di gente infame, che non sa cos'è il pudore - Franco Battiato
ricordati di pensare! - mia mamma
Avatar utente
Robby78
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3829
Iscritto il: gio gen 08, 2004 5:25 pm
Località: Emilia Romagna

Messaggioda DilanDog » mar ott 31, 2006 11:51 am

Robby ha centrato quello che volevo dire, non è che mi sono "perso" e da anni elaboro ogni stringa prima di passarla alle query. Anche il sostituire il carattere \ con l'apostrofo non cambia nulla, di fatto devo comunque elaborare la stringa prima di passarla. La domanda era proprio se era un'operazione davvero necessaria o se c'era un'alternativa, e a quanto pare l'alternativa non c'è
Avatar utente
DilanDog
Senior Member
Senior Member
 
Messaggi: 208
Iscritto il: ven apr 15, 2005 9:13 am
Località: Milano

Messaggioda Boo » mar ott 31, 2006 12:39 pm

Errore mio, scusate.
Avatar utente
Boo
Silver Member
Silver Member
 
Messaggi: 1276
Iscritto il: sab dic 04, 2004 3:41 pm

Messaggioda Zane » mar ott 31, 2006 2:22 pm

Il carattere ' è una keyword in SQL: per utilizzarlo è necessario utilizzare appunta una escape sequence, che è appunto due volte apice singolo.

Di validatori di input già pronti non ce ne sono, ma è comunque banale realizzarli manualmente.
Avatar utente
Zane
MLI Hero
MLI Hero
 
Messaggi: 7935
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising