Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    errore sintassi in update

    Ho questo codice per cambiare tre campi di testo in un db tramite UPDATE
    il codice e' questo

    <%
    dim id
    dim img
    dim imglarge
    dim text

    id=request.form("id")
    img=request.form("img")
    imglarge=request.form("imglarge")
    text=request.form("text")



    dim CurPath
    dim DBfile
    dim conn
    dim DSNtemp
    dim SQLstmt
    dim rs
    CurPath = request.servervariables("path_translated")
    DBfile="../mdb-database/myp.mdb"
    CurPath=left(CurPath,instrrev(CurPath,"\")) & DBfile
    Set conn = Server.CreateObject("ADODB.Connection")
    DSNtemp = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSNtemp = DSNtemp & "DBQ=" & CurPath
    conn.Open DSNtemp

    SQLstmt = "UPDATE gallery"
    SQLstmt = SQLstmt & " SET img='" & img & "',"
    SQLstmt = SQLstmt & " imglarge='" & imglarge & "',"
    SQLstmt = SQLstmt & " text='" & text & "'"
    SQLstmt = SQLstmt & " WHERE id=" & id
    set rs = conn.execute(SQLstmt)

    response.write "Changed"

    Conn.Close
    set conn=nothing
    set rs=nothing

    %>

    ma ricevo questo errore che con un altro database identico non ricevevo:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

    /myp/cambia.asp, line 65

    Se qualcuno vede l'errore di sintassi che non riesco a trovare lo ringrazio fin da subito...

  2. #2
    fatti stampare la query prima di eseguirla e controllala

  3. #3
    La query stampata risulta

    UPDATE gallery SET img='', imglarge='', text='' WHERE id=20

    sto riprendendo asp dopo tanto tempo
    forse la query corretta dovrebbe essere

    UPDATE gallery SET img=''img", imglarge=''imglarge", text=''text" WHERE id=20
    ????

    e quindi mancano delle virgolette da qualche parte??
    vado per ipotesi, potrei spulciare qualche manuale ma se ci capisci qualcosa te mi dai una soluzione dalla quale posso capire il corretto funzionamento del virgolame...

    thanks

  4. #4
    se la query ti viene stampata in quel modo vuol dire che qui
    codice:
    id=request.form("id")
    img=request.form("img")
    imglarge=request.form("imglarge")
    text=request.form("text")
    non si riempiono le variabili img imglarge e text...

    se i campi img,imglarge e text sono campi di testo nel database, la query deve essere
    codice:
    update tabella set campo='valore' where id=1
    usando per delimitare il valore l'apice singolo

    il campo id è numerico/contatore?

  5. #5
    si e' numerico contatore
    parte da 19 perchè ho cancellato delle righe direttamente da Access
    ma non dovrebbe fare differenza

  6. #6
    sorry

    e' contatore e basta...

  7. #7
    C'era un errore negli ID del form che doveva dare i valori

    l'ho corretto e la stampa della query e ' questa

    UPDATE gallery SET img='prova 1', imglarge='prova 2', text='prova 3' WHERE id=19

    però continua a non updatare il database

    con il solito errore

    boh

  8. #8
    prova a mettere i nomi dei campi tra parentesi quadre...la sintassi mi sembra giusta

  9. #9
    vedi non ci sarei mai arrivato

    funziona adesso

    grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.