13 messaggi dal 29 agosto 2003
Scusatemi
vi è qualcuno che può aiutarmi
con il quesito che si trova nel forum (ASP 3 per esempi)
l'apostrofo, visto che oleman è raffreddato?
scherzavo....

Grazie
Barone57
2.584 messaggi dal 14 maggio 2001
Ciao,
hai provato a sostituire l'Sql come da ultimo mio post?
13 messaggi dal 29 agosto 2003
Niente da fa...
così
strTitolo=Replace(strTitolo,"'",chr(146))
RsId0.Open = "SELECT Titolo, Autore FROM MidiBase WHERE Titolo='" & strTitolo & "'"
Baipassa la ricerca e anche se il titolo esiste fa a fare l'AddNew

cos'ì
RsId0.Open = "SELECT Titolo, Autore FROM MidiBase WHERE Titolo='" & strTitolo & "'"

ecco che risponde:
[Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante) nell'espressione della query 'Titolo='L'auto corre lontana, ma io corro da te'.

(operatore mancante) che cos'è, sempiccia co l'apostrofo?

se non ti disturba troppo vedilo sul sito a questo link:
www.grazianonet.it/MidiBase/MidiBaseModulo.asp
prova a registrare un titolo sia senza che con l'apostr...

Ciao seoman scusa se sono passato de qua!
tanto e uguale penso no?
Barone57

Modificato da Barone57 il 08 ottobre 2003 06.41 -
2.584 messaggi dal 14 maggio 2001
Ciao non riesco ad accedere al tuo link...
Non riesco a capire il problema anche perché uso lo stesso codice e a me funziona correttamente...

Prova a fare:
response.write Instr(strTitolo,"'") & "---"

Cosa ti restituisce quando c'è l'apostrofo? e quando non c'è?
13 messaggi dal 29 agosto 2003
Quando non c'è l'apostrofo
response.write Instr(strTitolo,"'") & "---"
risposta: 0---

Con l'apostrofo non passa
e da l'errore di (operatore Mancante).

Segui concentratamente,,,,,,,,

Facendo l'aggiornamento On-Line di un titolo, il controllo deve verificare se il titolo che stò per aggiornare esiste, e mi deve dire di chi autore è per vari motivi, diciamo per non per non mettere un doppione.

Se aggiorno un titolo come ad es: Red barchetta mi dice, se esiste, che il titolo Red Barchetta esiste e che è dell'autore: Rush, cosi provvedo ad eventuali cambiamenti.

Se invece il titolo è con l'apostrofo, tipo L'agnello di Dio,
mettendo strTitolo=Replace(strTitolo,"'",chr(146))
baipassa il controllo e NON mi dice se il titolo esiste nel database, facendo così direttamente l'update anche se il titolo esiste, e non lo deve fare.

Senza strTitolo=Replace(strTitolo,"'",chr(146))
mi da questo errore: ( ricordo, solo con ' )

[Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante) nell'espressione della query 'Titolo=L'agnello di Dio''.

In pratica il problema è nel controllo dell'esistenza dei titoli.

strTitolo=Replace(strTitolo,"'",chr(146))
non serve perchè per l'update non c'è nessun problema!

Per quanto riguarda il Link, scusa ma mi sono sbagliato.
http://www.grazianonet.it/MidiOke2/MidiBaseModulo.asp
prova con questi titoli che sono già nel database:
Autore: quello che ti pare
Titolo: Sguardo verso il cielo (senza ' ) e L'angelo custode ( con ' )

Poi prova a inserire dei titoli a caso con o senza '.
Autore: come ti pare.

Forse così ti rendi conto.

Ciao
Barone57



Modificato da Barone57 il 11 ottobre 2003 12.02 -

Modificato da Barone57 il 11 ottobre 2003 12.03 -

Modificato da Barone57 il 11 ottobre 2003 12.05 -
3.122 messaggi dal 16 maggio 2002
Leggi la FAQ #42 su questo sito

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
13 messaggi dal 29 agosto 2003
Caro Rainor non ci capiamo proprio.
Non è il fatto di aggiornare ma di ma questo controllo....

RsId0.Filter = "Titolo='" & strTitolo & "'"
If RsId0.Recordcount >= 1 Then
intErrors = intErrors + 1
Response.Write"<center><font face=Verdana size=2><b>ATTENZIONE</b><br>Il Titolo: <b>" & strTitolo & " </b>esiste nel MidiBase<br>ed è dell'Autore: <b>"& RsId0("Autore") &"</b>" & vbCrLf
ecc.. ec...

Poi se il titolo non c'e va a fare l'aggiornamentOOOO....
*******************************************************************************
Ciocca bene....

connessione....
strTitolo=Replace(Request.Form("strTitolo"),"'","''",1)
RsId0.Filter = "Titolo='" & strTitolo & "'"
If RsId0.Recordcount >= 1 Then
intErrors = intErrors + 1

ecc. ec...

Questo sopra (CON UN TITOLO CON L'APOSTROFO) baipassa il controllo, FORSE vede il titolo che è esistente nel DB come inesistente e così pure
strTitolo=Replace(strTitolo,"'",chr(146))

NON SERVONO A NIENTE..... IN QUESTO CASO!

MI ARIPETO...
NON RICONOSCE, L'APOSTROFO SOLO NEL CONTROLLO IL QUALE MI DOVREBBE DIRE SE UN TITOLO C'E' O NO...
AHOO.. N'SE CAPIMO PRORIO HHHE....
nun ve concentrate.... (^_^)

P.S. in una ricerca se l'apostrofo da errore se ne mettono due
cioè L'auto diventa L''auto e ti trova il titolo L'auto... ok!
Per fare questo utilizza le funzioni di gestione delle stringhe.
Request.Querystring fa questa funzione cioè interpreterebbe ' come
%20, mentre Request.Form no. Il modulo in se purtoppo non manda uleriori informazioni da poter fare diventare Request.Form in Request.Querystring perchè non ne ricava alcuna informazione.
Quindi RsId0.Filter = "Titolo='" & strTitolo & "'"
o
RsId0.Filter = "Titolo="&Request.Form("strTitolo) è la stessa cosa
ma non fa la funzione di
RsId0.Filter = "Titolo="&Request.Querystring("strTitolo)
che secondo me sarebbe la soluzione.

STOP....

Ciao
Barone57

Modificato da Barone57 il 11 ottobre 2003 16.20 -
3.122 messaggi dal 16 maggio 2002
Allora sei tu che non vuoi capire... a che ti serve il filter??? Non basta forse una query del tipo
SELECT *
FROM tabella
WHERE titolo='titolochevuoi'
??
Ovviamente al titolochevuoi deve essere applicata la funzione di "correzione" degli apici, ovvero una replace dell'apice singolo in apici doppi (se usi Access o SQL Server) o in /' (se usi MySql).

Se non vuoi avere titoli doppi sarebbe opportuno impostare il titolo come chiave (o primaria o alternativa) della tua tabella. In questo modo l'inserimento di doppioni viene evitato indipendentemente dall'applicazione.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.