Newsgroup: it.comp.www.asp
Titolo: Aiuto !! "Insert Into.."

Salve a tutti !!!
Spero che possiate darmi una mano. Mi chiamo Doriana e sono una appassionata
di Access e Web.
Sto creando delle pagine ASP collegate ad un database, ma ho qualche
problema con il form per la registrazione in linea di dati.
Quando provo infatti mi dà questo errorre:
Microsoft OLE DB Provider for ODBC Drivers errore "80040e14"
[Microsoft][ODBC Microsoft Access 97 Driver] Syntax error in INSERT INTO
statement.
Qualcuno può aiutarmi a capirci qualcosa ?? Ho controllato e ricontrollato
ma non riesco a trovare l'errore.
Grazie a quanti vorranno aiutarmi.
Doriana.

statement.
hai fatto un'errore di sintassi nella query SQL, postaci il pezzo di
codice asp cosi' ci diamo un'occhiata
 - Federico Feroldi -
| 
e.mai...@pixzone.com
.
| 
http://www.pixzone.com/
| Logicom srl - Numerica srl

Grazie innanzitutto per l'attenzione.
Ecco qui il pezzo di codice incriminato.
  sql = "INSERT INTO
tPalestre(Denominazione,Indirizzo,City,Provincia,E_mail,Tessera_UISP,Note)"
  sql = sql & " VALUES ( "
  sql = sql & "'" & strDenominazione  & "',"
  sql = sql & "'" & strIndirizzo  & "',"
  sql = sql & "'" & strCity  & "',"
  sql = sql & "'" & strProvincia  & "',"
  sql = sql & "'" & strE_mail  & "',"
  sql = sql & "'" & strTessera_UISP  & "',"
  sql = sql & "'" & strNote  & "')"
  Set DataConn = Server.CreateObject("ADODB.Connection")
  DataConn.Open "tsc"
  Set cmdTemp = Server.CreateObject("ADODB.Command")
  cmdTemp.CommandText = sql
  cmdTemp.CommandType = 1
  Set cmdTemp.ActiveConnection = DataConn
  cmdTemp.Execute
  Set cmdTemp = Nothing
  Set DataConn = Nothing
Cosa ne pensate ???
Doriana







tPalestre(Denominazione,Indirizzo,City,Provincia,E_mail,Tessera_UISP,Note)"
Non vorrei sbagliare ma credo che in Access la parola "Note" sia riservata,
quindi non potresti usarla in una query SQL. Prova a cambiare la definizione
della tabella, se non succede nulla di nuovo... beh i misteri
dell'informatica...
Pierpaolo

statement.



Grazie, Grazie, Grazie e ancora Grazie ...
Non sapevo dove sbattere ancora la testa ... e la soluzione era cosě
semplice !!!
Doriana

Se hai problemi con un parola CHIAVE puoi inserirla tra questo carattere : `
ad esempio `MOD`
Se il problema è per gli apici nei campi da inserire come valori un amico mi
ha dato questa dritta :
" invece di scriverti
l a stringa SQL completa di valori usa i punti interrogativi cosi'
INSERT INTO nometabella (campo1, campo2 ...) VALUES (?, ? ...)
e poi tramite la collezione Parameters dell'oggetto Command (quello su cui
esegui il metodo Execute) valori i parametri con i valori che di volta in
volta ti servono."

ad esempio `MOD`
Se invece hai la tastiera italiana la parola chiave la puoi inserire tra
parentesi quadre.
Nell'esempio di DORI verrebbe
"INSERT INTO
tPalestre(Denominazione,Indirizzo,City,Provincia,E_mail,Tessera_UISP,[Note])
VALUES ..."
Comunque l'uso del carattere ` lo ignoravo.
    Papallo

Doriana
Prego figurati...
Comunque come ha giustamente precisato Enrico Cantarelli e ho aggiunto io se
non puoi/vuoi cambiare definizione alla tabella scrivi "INSERT INTO
tPalestre(Denominazione,Indirizzo,City,Provincia,E_mail,Tessera_UISP,`Note`)
VALUES ..."
oppure "INSERT INTO
tPalestre(Denominazione,Indirizzo,City,Provincia,E_mail,Tessera_UISP,[Note])
VALUES ...".
Un consiglio spassionato: cambia la definizione della tabella, se un giorno
ti dimentichi di usare "l'apice" o la parentesi in una query di 5 righe non
so se l'errore ti salta subito all'occhio.

Se vuoi evitare i problemi dovuti agli apici all'interno delle stringhe ti
conviene usare i metodi delll'oggetto recordset invece che fare tutto con le
stringhe sql.

Non chiedermi perche', ma prova a fare cosi':
Cambia il nome del campo Note nel database e rinominalo con un altro nome, ad
esempio info.
Io ho avuto lo stesso problema, e non so per quale motivo, chiamare un campo
con "Note" causa
al database maldipancia.
Fai questa prova, e dimmi come e' andata.