Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Errore INSERT TO

  1. #1

    Errore INSERT TO

    quando vado ad inserire dei dati (news) nel Db mi da quest'errore !

    [Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

    /news/admin/edit.asp, line 77


    <%@LANGUAGE="VBSCRIPT"%>

    <%
    ' verifica utente amministratore connesso...
    if not session("adminLogged") then
    response.redirect "login.asp"
    end if

    ' verifichiamo se la pagina è stata chiamata passandole via FORM o queryString in valore ID
    id = request("id")

    ' se l'ID c'è vuol dire che si tratta di una modifica...
    if len(id) > 0 and IsNumeric(id) then
    id = clng(id)
    else

    ' ... altrimenti è un nuovo inserimento.
    id = 0
    end if

    ' connessione...
    set conn = server.createObject("ADODB.Connection")
    conn.open connString

    ' se la pagina è stata chiamata via FORM vorrà dire che si sta eseguendo una operazione di MODIFICA o un NUOVO INSERIMENTO...
    if submit then

    ' prendiamo i dati...
    ntitle = trim(request.form("title"))
    ntitle = replace(ntitle,"'","''")
    nbody = trim(request.form("body"))
    nbody = replace(nbody,"'","''")
    ndate = request.form("date")
    nstatus = clng(request.form("stato"))

    ' controlliamo che i dati ci siano...
    if len(ntitle) = 0 then
    errore = true
    messaggio = messaggio & "Il campo TITOLO è obbligatorio!
    "
    end if

    if len(nbody) = 0 then
    errore = true
    messaggio = messaggio & "Il campo CORPO è obbligatorio!
    "
    end if

    if len(ndate) = 0 then
    ndate = FormatDateTime(Date(),vbGeneralDate)
    else
    if not isDate(ndate) then
    errore = true
    messaggio = messaggio & "Il campo DATA deve contenere una data valida!
    "
    else
    ndate = cdate(ndate)
    end if
    end if

    ' se non ci sono dati mancanti...
    if not errore then

    ' se ID è maggiore di zero allora si tratta di un AGGIORNAMENTO di dati...
    if id > 0 then
    sql = "UPDATE tbl_news SET title = '" & ntitle & "', body = '" & nbody & "', date = '" & ndate & "', stato = " & nstatus & " WHERE id = " & id
    ntitle = replace(ntitle,"''","'")
    nbody = replace(nbody,"''","'")
    else

    ' ... altrimenti si tratta di un NUOVO INSERIMENTO.
    sql = "INSERT INTO tbl_news (title, body, date, stato) VALUES('" & ntitle & "', '" & nbody & "', '" & ndate & "', " & nstatus & ")"
    ntitle = ""
    nbody = ""
    ndate = FormatDateTime(Date(),vbGeneralDate)
    nstatus = 1
    end if

    ' eseguiamo l'operazione...
    conn.execute(sql)
    messaggio = "Operazione eseguita correttamente."
    end if

    else

    ' se ID è maggiore di zero vuol dire che si tratta di una MODIFICA e quindi dobbiamo prendere idati dal db e metterli nel FORM per farli mdoficare all'utente...
    if id > 0 then

    sql = "SELECT * FROM tbl_news WHERE id = " & id

    set rs = server.createObject("ADODB.Recordset")
    rs.open sql, conn, 1, 2

    if not rs.eof then
    ntitle = rs("title")
    nbody = rs("body")
    ndate = rs("date")
    nstatus = rs("stato")
    end if

    rs.close
    set rs = nothing

    else

    ' altrimenti, trattandosi di un NUOVO INSERIMENTO, avremo campi vuoti nel form.
    ntitle = ""
    nbody = ""
    ndate = FormatDateTime(Date(),vbGeneralDate)
    nstatus = 1

    end if

    end if

    conn.close
    set conn = nothing

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    La response.write della sql prima di eseguirla che dice?

    Roby

  3. #3
    Stampa a video la query e controlla l'errore di sintassi.

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Originariamente inviato da weppos
    Stampa a video la query e controlla l'errore di sintassi.
    Grazie :gren:

  5. #5
    Originariamente inviato da Roby_72
    Grazie :gren:

  6. #6
    ma come e dove scrivo la response.write prima della sql ?

    response.write (sql) ?

  7. #7
    mi da questo :

    INSERT INTO tbl_news (title, body, date, stato) VALUES('ee', 'eee', '6/10/2004', 0)

  8. #8
    mancano gli apici ? ' '

  9. #9
    '6/10/2004'
    è un campo data? Se sì vanno i #

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ormai lo sai. Per i campi testo ci vogliono gli apici, per quelli numerici nulla, per i campi data/ora il #

    Roby

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.