- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- Errore sintassi INSERT INTO (80040e14)
-
Errore sintassi INSERT INTO (80040e14)
Salve! Mi sono imbattuto in questo errore aggiungendo un nuovo volore (size) allo script per e-commerce metacart in modo da adattarlo al mio sito.
eccovi il codice.
Sub AddToOrder(nOrderID, nProductID, nQuant, nSize)
sqlText = "INSERT INTO itemsOrdered " _
& " (orderID, productID, quantity, size) values " _
& " ("&nOrderID&", "&nProductID&", "&nQuant&", "&nSize&")"
Conn.Execute(sqlText) -------->>>Errore qui
End SubintProdID = Request.form("intProdID")
intQuant = Request.form("intQuant")
intSize = Request.form("intSize")set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConStringintOrderID = cstr(Session("orderID"))
if intOrderID = "" then
CreateNewOrder
end ifsqlText = "SELECT * FROM itemsOrdered WHERE orderID =" & intOrderID & " AND productID =" & intProdID
set rsOrder = Conn.Execute(sqlText)if rsOrder.EOF then
txtInfo = "This item has been added to your order."
AddToOrder intOrderID, intProdID, intQuant, intSize
else
txtInfo = "This item is already in your cart."
end ifHo fatto diverse prove seguendo consigli da forums quà e là, ma nulla da fare.
La query che mi restituisce è la seguente:INSERT INTO itemsOrdered (orderID, productID, quantity, size) values (1, 25, 1, 4)
fin qui mi pare tutto regolare... sbaglio?
Anche per quanto riguarda i campi del DB mi sembra tutto ok... ogni campo è di tipo numerico intero con valore richiesto = no.
Che altro potrebbe essere?!
...sono disperato! Grazie in anticipo.
-
@deathnroll said:
...
Sub AddToOrder(nOrderID, nProductID, nQuant, nSize)
sqlText = "INSERT INTO itemsOrdered " _
& " (orderID, productID, quantity, size) values " _
& " ("&nOrderID&", "&nProductID&", "&nQuant&", "&nSize&")"
Conn.Execute(sqlText) -------->>>Errore qui
End Sub
....Ciao Deathnroll e benvenuto nel Forum GT!
credo proprio che "size" sia una parola riservata per il tuo database.
Quindi due sono le soluzioni:- Rinomini il campo ed aggiorni la query nel codice postato.
- Oppure prova a racchiudere il nome del campo tra parentesi quadre:
Sub AddToOrder(nOrderID, nProductID, nQuant, nSize) sqlText = "INSERT INTO itemsOrdered " _ & " (orderID, productID, quantity, ) values " _ & " ("&nOrderID&", "&nProductID&", "&nQuant&", "&nSize&")" Conn.Execute(sqlText) -------->>>Errore qui End Sub
Maggiori dettagli e link agli elenchi delle parole riservate nei DBMS.
PS: Prima di postare ti consiglio di usare il motore di ricerca interno al Forum GT e/o di usare Google cercando info sul codice dell'errore che hai ottenuto dal tuo script.
-
...sei un genio paocavo!
nn immagini nemmeno quanto ti sia grato!
ho rinominato il campo con "taglia" e ora funziona... vedi a fare gli americani...
ultima domanda. riusciresti a passarmi il link giusto delle parole riservate dei db ms? pare che quello che mi hai appena postato nn funzioni...
grazie ancora e a preeeesto!
-
Per gli elenchi delle parole riservate nei sistemi di database più diffusi, vedere le pagine Web seguenti:
- Microsoft Access all'indirizzo http://support.microsoft.com/default.aspx?scid=kb;en-us;Q209187
- Microsoft SQL Server all'indirizzo http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ra-rz_9oj7.asp
- MySQL all'indirizzo[INDENT]http://dev.mysql.com/doc/mysql/en/reserved-words.html
[/INDENT];)