• User Newbie

    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 Sub

    intProdID = Request.form("intProdID")
    intQuant = Request.form("intQuant")
    intSize = Request.form("intSize")

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

    intOrderID = cstr(Session("orderID"))
    if intOrderID = "" then
    CreateNewOrder
    end if

    sqlText = "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 if

    Ho 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.


  • Moderatore

    @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:

    1. Rinomini il campo ed aggiorni la query nel codice postato.
    2. 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.

    :ciauz:


  • User Newbie

    ...sei un genio paocavo!
    nn immagini nemmeno quanto ti sia grato! :yuppi:
    ho rinominato il campo con "taglia" e ora funziona... vedi a fare gli americani... :lol:
    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!


  • Moderatore

    Per gli elenchi delle parole riservate nei sistemi di database più diffusi, vedere le pagine Web seguenti: