1 messaggio dal 30 luglio 2010
Salve, aiuto!!... come mai mi restituisce questo errore:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante) nell'espressione della query ''Parti dell'edificio', 35.5, 1)'.

quando inserisco un record con apostrofo o apice tipo : (Parti dell'edificio) come si vede nell'errore stesso, invece quando la frase è senza apostrofo tutto va bene?

lo sciprt è il seguente:

sql=""
sql = sql + "INSERT INTO scontrini "
sql = sql + "(id, idordine, CodiceArticolo, DenominazioneArticolo, PrezzoArticolo, QuantitativoArticolo) VALUES "
sql = sql + "('" & IDVoceDiScontrino & "', "
sql = sql + "'" & IDOrdine & "', "
sql = sql + "'" & ScontrinoCodiceArticolo(i) & "', "
sql = sql + "'" & ScontrinoDenominazioneArticolo(i) & "', "
sql = sql + "" & replace(cstr(ScontrinoPrezzoArticolo(i)), ",", ".") & ", "
sql = sql + "" & ScontrinoQuantitativoArticolo(i) & ")"
DatabaseWebstore.execute sql

Ringrazio in anticipo.
12 messaggi dal 17 febbraio 2002
E' assolutamente normale, in SQL si usa normalmente l'apice come delimitatore di stringa, per cui un'apice all'interno del contenuto di un campo per Sql è il delimitatore e quindi va in errore.
C'è una sola soluzione: raddoppiare l'apice, la tua (Parti dell'edificio) la devi passare come (Parti dell''edificio).

In alternativa, puoi passare i valori delimitati da " (vigolette) per cui l'apice all'interno passa senza problemi. Ma non cambia molto, forse solo la frequenza d'uso, se hai contenuti con ". Anche in questo caso devi raddoppiare le virgolette.

Puoi sempre scriverti una funzione che adegua il 'value' prima di inserirlo nella stringa SQL.

Spero ti sia stato utile.

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.