Newsgroup: it.comp.lang.vo-clipper
Titolo: Problema con il carattere '

Ciao ho un piccolo problema con tutte le query dove nel testo compare il 
carattere '. Essendo usato come delimitatore di stringa per la creazione di 
query penso che il problema derivi da questo.
Ma come lo sostituisco ? Cioè con che carattere ? o stò sbagliando qualcosa 
?
Grazie per ogni tipo di aiuto
Massimo Friargiu
P.s. VO27B mysql 4.0.20a (nn attaccatemi perchè nn l'ho aggiornato, devo 
prima fae delle prove. 

Danilo non sapresti darmi una mano?
Massimo 

Credo che tu debba usare la funzione mysql_real_escape_string() per validare 
correttamente le stringhe che invii.
    Ciao.
                                        Francesco 

Va beh, mi stavo fissando su una cosa talmente stupida che mi sono pentito 
di aver chiesto.
Le query le facevo in questa maniera :
cQuery := "update pippo set ciccio = '" + cValore + "'"
Se in cValore è presente il carattere ' non mi esegue la query perchè ' 
viene usato come carattere delimitante dei valori.
Per risolvere ho semplicemente invertito i due caratteri :
cQuery := 'update pippo set ciccio = "' + cValore + '"'
e funziona bene.
Il problema si presenta però se nel testo c'è " o tutti e due i caratteri. A 
questo punto cercherò di scrivermi qualcosa che mi risolva il problema in 
tutti e 3 i casi.
Grazie comunque della collaborazione
Massimo 


Perchè non usi le parentesi quadre.
cQuery := [Update pippo set ciccio = "]+cValore+["]
Comunque il problema resta se nella stringa cValore compare il carattere (")
Enzo.
--------------------------------------------------------------------------------
La mia Cartella di Posta in Arrivo è protetta con SPAMfighter
8188 messaggi contenenti spam sono stati bloccati con successo.
Scarica gratuitamente SPAMfighter! 

 (")
Certo, il problema c'è sempre se usi il carattere " devi stare attento che 
non ci sia in cValore, se usi ' idem con patate.
Comunque appena ho 10 minuti liberi devo rivedermi questa cosa per 
risolverla una volta per tutte.
Massimo 

 - Mostra testo tra virgolette -

 Biagio
Certo ma il problema si pone per molti caratteri, in particolare nei campi 
blob, dove la cosa non è così semplice.
Vedi il manuale di MySql al punto 9.1.1. Strings
\0  An ASCII 0 (NUL) character.
\'  A single quote (''') character.
\"  A double quote ('"') character.
\b  A backspace character.
\n  A newline (linefeed) character.
\r  A carriage return character.
\t  A tab character.
\Z  ASCII 26 (Control-Z). See note following the table.
\\  A backslash ('\') character.
\%  A '%' character. See note following the table.
\_  A '_' character. See note following the table.
Il problema si risolve con la funzione di MySql  22.2.3.16. 
mysql_escape_string()
You should use mysql_real_escape_string() instead!
This function is identical to mysql_real_escape_string() except that 
mysql_real_escape_string() takes a connection handler as its first argument 
and escapes the string according to the current character set. 
mysql_escape_string() does not take a connection argument and does not 
respect the current character set.
Danilo


prova a fare una ricerca sottostringa e sostiuiscila con il carattere ASCII 96  esempio 
StrTran(AllTrim(SELF:oDCcLineare:Textvalue),"'",CHR(96))
-- 
Questo articolo e` stato inviato dal sito web 
http://www.nonsolonews.it

Io ho risolto, il problema sostituendo il carattere ' (oppure ") con il
carattere [ e ] per chiudere le stringhe
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it