Newsgroup: it.comp.appl.access
Titolo: Apostrofo'

Come posso evitare che un nome con l'apostrofo inserito  nel DB mi dia
errore nelle query?


Se hai Access 2000 guardati la funzione Replace
SunRex

 ha scritto nel messaggio
news:EAJFa.124039$g92.2...@news2.tin.it...

Ho access xp

 ha scritto nel messaggio
news:JKJFa.80644$Ny5.2...@twister2.libero.it...

Ergo la dovresti avere.


Non deve dare errore, l'errore lo da perchè è la QRY sbagliata.
Se leggi i post vari degli ultimi giorni trovi come ovviare alla cosa
usando i caratteri speciali nel caso chr(34) per la composizione
del criterio.
@Alex

 ha scritto nel messaggio
news:EAJFa.124039$g92.2...@news2.tin.it...

Con cosa vorresti che sostituisse l'apostrofo.....???
Se c'č perchč Rimpiazzarlo.........???
Facciamo lavorare bene le QRY e gli apostrofi non
danno problemi.
@Alex.


SunRex

 
raddoppialo...
-- 
+-------
| Paolo opg
|
| janickg ( at ) hotmail ( dot ) com
+-------


Devo dire che secondo me non hai le idee ben chiare di come si usa SQL.
Non da mai nessun problema, e poi ti pare che Microsoft abbia fatto la
cazzata
di non darti l'opportunità di usare gli apostrofi...........!!!
Fortuna che tu hai pensato che basta sostituirli...........!!
Ma perchè gli sviluppatori non usano questo metodo....?????
Beh.....!!!!
Ovvio che puoi operare come credi, ma questo è il modo sbagliato.
@Alex.

 @Alex.
Scusa  @Alex ma se ho una casella di testo in cui l'utente deve inserire per
esempio
un cognome ed il testo che immette mi serve per eseguire una ricerca su una
tbl con una qry
io faccio così.
SunRex
Sub Ricerca()
Sub Ricerca
Dim strRicerca As String
Dim strSQL As String
'Controlla che venga inserito qualcosa nella txtRicerca.
    If IsNull(Me.txtRicerca.Value) Then
        MsgBox "Devi inserire almeno un carattere per iniziare la ricerca",
vbInformation,
        txtRicerca.SetFocus
Exit Sub
Else
    txtRicerca.SetFocus
    strRicerca = Trim(txtRicerca.Text)
    strRicerca = Replace(strRicerca, "'", "''")
 strSQL = "SELECT * FROM MiaTabella WHERE Cognome like '" & strRicerca &
"*'"
Set rsAnagrafiche = db.OpenRecordset(strSQL)
Etc Etc

 ha scritto nel messaggio
news:BCMFa.76880$pR3.1...@news1.tin.it...

Se invece la SQL la componi così:
strRicerca = Trim(txtRicerca.Text)
strSQL = "SELECT * FROM MiaTabella WHERE Cognome like " & chr(34) &
strRicerca & "*" & chr(34)
Non sei costretto ad usare un Replace che ti sostituisce "Dall'Oglio" in
"Dall"Oglio".
Ciao.
@Alex.


Quindi
"Devo dire che secondo me non hai le idee ben chiare di come si usa SQL."
    Non è propio vero.
"Fortuna che tu hai pensato che basta sostituirli...........!!"
    E tu non hai pensato e basta.
"Ma perchè gli sviluppatori non usano questo metodo....?????"
    Perchè tu non usi questo metodo?Semplicemente perchè non lo conosci.
Ciao ;)
SunRex

 danno problemi.
io ho un applicativo professionale in VB6+Oracle in cui alcuni controlli
prevedono l'immisisone di testo libero. Se all'utente nel testo libero
scappa messo un apostrofo, l'applicativo professionale da' errore ORA e poi
si pianta
Soluzione: ho rimappato le tastiere. Se non puoi rimediarlo, lo aggiri.
Bal

 ...professionale in VB6+Oracle ...
Meno male che è professionale perchè se fosse dilettantistico non si
aprirebbe nemmeno allora.
Bei professionisti, complimenti!
Bye.

 ha scritto nel messaggi
Suvvia non vi riscaldate.
evidentemente si e' trattato di incomprensione misto a un po' di nervosismo.
a volte si risponde come viene e si risulta piu' agrgessivi di quanto non si
vorrebbe.
Facciamo la pace e non pensiamoci piu'
sib

 errore nelle query?
Vai sull'help e leggiti l'argomento Virgolette nelle stringhe.
Lì troverai anche come devi costruire una stringa SQL quando si deve
effettuare una ricerca in un campo che potrebbe contenere un apostrofo o
apice che dir si voglia.
Anche io sono d'accordo che non sia necessario usare la funzione Replace,
anche perché io uso Access 97 e la funzione Replace non c'è e quindi mi si
complicherebbe enormemente la vita.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 "Dall"Oglio".
ciao Alex.
quello che dici per Access va bene ma in oracle no (non puoi usare le virgolette
come delimitatore)
Puoi fare solo quello cha ha detto SunRex.
E poi domanda. Che succede se all'interno della stringa ho le virgolette o
chr(34) che dir si voglia?
i.e.
situazione campo testo cosi' fatto:
[Il miglior vino lo si puo' trovare "Dall'oste 'mbriaco" sulla statale che porta
a Marino dove come si sa la sagra c'e' dell'"uva"]
--
a.cara 
Togli qualcosa dall'email

 wrote in
news:bc97g9$gqra1$
1...@ID-163647.news.dfncis.de
: 

scusa, ma non puoi raddoppiare l'apice e usarlo normalmente nel db???
io ho sempre fatto cosě con tutti i caratteri speciali sql e non ho mai 
avuto problemi...


 Bei professionisti, complimenti!
Una SpA grossa, spinoff di una SpA ancora piu' grossa, gia' pusher della PA

 ha scritto nel messaggio
news:bc9uq0$h07j2$1...@ID-163647.news.dfncis.de...

Beh, questa non è certo garanzia di professionalità...
Una procedura che non esegue le query se ci sono apostrofi è la cosa +
demenziale e + dilettantistica che si possa vedere.
Evidentemente per scrivere codice hanno usato dei programmatori dilettanti
per pagarli poco, oltre a non impiegare risorse per il testing...
Mi ricorda molto certe aziende colossali che grazie a contratti
mutimiliardari con la P.A. vendevano alle stesse a prezzi pazzeschi
soluzioni sw veramente al di sotto di ogni limite qualitativo tollerabile,
giovandosi della loro posizione di monopolio...
Questa non è professionalità, è truffa!
Se a me, responsabile informatico aziendale, mostrano un applicativo che si
inchioda facendo una query con un accento: 1) viene da ridere, 2) accompagno
lor signori alla porta tempo zero e cancello il nome dell'azienda dalla mia
agenda...
Bye.

 chr(34) che dir si voglia?
Con SQL_Server nn ci sono problemi, e poi se nel testo ci fossero i doppi
apici
la cosa sarebbe uguale visto che il Replace viene eseguito su singolo
APICE....!
Mi sfugge qualcosa...???
Premetto che non uso Oracle ma FireBird e Interbase così non danno problemi
MySQL nemmeno, ma al di là dei problemi a questo punto vorrei capire meglio.
@Alex.