Newsgroup: it.comp.www.asp
Titolo: Problema con apicetto.

Ho una pagina asp che legge del testo da un file MDB con delle SELECT.
Sulla mia macchina (W2000, IIS4) tutto a posto. Sulla macchina del provider
invece succede che ogni volta che nel testo (cioe' nel campo della tabella
che sto leggendo) c'e' un'apicetto singolo il testo stesso viene riletto da
capo.
Esempio:
"Pippo ha mandato a Pluto un'antica loro foto."
diventa:
"Pippo ha mandato a Pluto unPippo ha mandato a Pluto un'antica loro foto."
Nel caso di piu' apicetti nella stesse stringa solo con il primo si verifica
il problema.
Vorrei evitare di dover sostituire l'apicetto con il chr
corrispondente...qualcuno ha un'dea migliore?
Saluti.
Luciano

Usa questa funzione
function apicetto(stringa)
 apicetto=replace(stringa,"'","''")
end function
Ciao
Fede


 apicetto=replace(stringa,"'","''")
Forse mi sono spiegato male....
Il problema si verifica quando l'apicetto e' nel campo del record che leggo
dal mio DB.
Se faccio
response.write
di un recordset settato su SELECT campo1 FROM tabella1
se in campo1 c'e':
"Pippo ha mandato a Pluto un'antica loro foto."
nell'HTML mi trovo:
"Pippo ha mandato a Pluto unPippo ha mandato a Pluto un'antica loro foto."
Saluti.
Luciano

E quindi??? Il problema non cambia.
Saluti
--
Lino Mari
Intermedia srl
http://www.intermedia2000.com

In alternativa puoi concatenare la stringa SQL tra i codici caratteri 34 es:
ssql = chr$(34) & sStringaSql & chr(34)
e successivamente lanciare la query
--
La piu' grande community italiana di sviluppatori!
 
http://forum.ASPItalia.com/
 
http://www.ASPItalia.com/

 E quindi??? Il problema non cambia.
No, il problema e' sempre quello, e' la soluzione che non va'!:-)
Non devo sostituire l'apicetto singolo con i doppi apici...
Se in un campo del record c'e' scritto:
"Quanto è bona un'amica mia"
quando io faccio
response.write miorst (campo1)
voglio che appaia quello che c'e' effettivamente scritto nel record.
Invece al momento ottengo (ma solo sulla macchina del provider)
"Quanto è bona unQuanto è bona un'amica mia"
Ovvero, al primo apicetto viene ripetuto l'intero contenuto del campo.
Sperando di essere stato chiaro...:-)
Saluti.
Luciano

 e successivamente lanciare la query
Non e' il mio giorno fortunato....:-)))
Rispiego meglio:
l'apicetto non sta nella stringa SQL, senno' il problema sarebbe facilmente
risolvibile come dici tu, ma in uno dei campi del record.
E' il risultato della query che viene male interpretato dall'asp (o forse
gia' lo riceve sbagliato) non l'SQL.
Sul mio PC (W2000, IIS) funziona tutto bene. Il provider invece mi ha appena
confessato di avere un server apache con interprete asp halcyonsoft, forse
il problema e' li.
Magari a quelcuno e' gia' capitato...
Saluti.
Luciano

Purtroppo ti devo ribadire il concetto...
Avendo capito che la stringa č data dal contenuto del campo nel DB. Ti posso
dire che per trovare il problema dovresti per prima cosa vedere
effettivamente nel DB cosa c'č scritto, se č tutto regolare fare una prova
mettendo il doppio apicetto con la funzione replace() nella stringa generata
dal campo del DB e visualizzarla. se anche cosě no dovesse funzionare vuol
dire che effettivamente potrebbe esserci un problema sul web server.
Eventualmente posta la parte di codice interessata.



Sei sicuro che in base dati il campo in questione sia valorizzato
correttamente?
Mi spiego meglio: è possibile che il problema si verifichi quando fai la
INSERT nella tabella e non quando fai la SELECT (...)
Controlla... e fammi sapere!!
Ciao,
Michele Piscopo
http://www.7Host.com
      Free Hosting, Free ASP

 Eventualmente posta la parte di codice interessata.
Si, ma non e' nulla di strano....
<%
strsql = "SELECT testo FROM T_testi_A "
strsql = strsql & "WHERE idpagina=" & id_pag & " AND idlingua=" & id_lin & "
AND attivo=-1 "
strsql = strsql & "ORDER BY ordine"
rst.open strsql,CN
do while not rst.eof
    response.write rst("testo") & "</p><p>"
    rst.movenext
loop
rst.close
%>
Grazie per l'interessamento!:-)
Saluti.
Luciano

 Controlla... e fammi sapere!!
Fatto, grazie!:-)
Saluti.
Luciano

Per doppio apicetto intendevo due apicetti (due apostrofi).
Fammi sapere


 Fammi sapere
Rinuncio a capire.....
Tutto quello che posso dire e che....udite udite...
se il testo contenente l'apicetto malefico lo digito su un PC completamente
anglofono (W2000 e office in inglese)....
quando poi metto il DB sul sito e' tutto a posto.
(scoperto per caso!)
Vabbe' che non ci sono piu' le stagioni... ma almeno gli ascii standard
potevano lasciarceli!!:-))
Saluti.
Luciano