Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it L'avatar di fazius
    Registrato dal
    Mar 2006
    residenza
    Torino
    Messaggi
    870

    problema Syntax error in UPDATE statement

    ho un problema con la modifica di news questo è l'errore
    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

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

    modifica.asp, line 71
    la stringa è questa

    Cn.Execute("UPDATE news SET data = '" + r_data + "', titolo = '" + r_titolo + "', descrizione = '" + r_descrizione + "', click = '" + r_click + "', WHERE id = " + id );
    Cn.Close();
    il file completo è questo
    (
    <%@LANGUAGE = JScript%>

    <%
    var id = parseInt(Request.QueryString("id"));
    if (isNaN(id))
    {
    Response.Redirect("index.asp");
    }
    var Rs = Cn.Execute("SELECT * FROM news WHERE id = " + id);
    var azione = new String(Request.QueryString("azione"));
    %>
    <html>
    <head>
    <title>Modifica i dati</title>
    <style type="text/css">
    td, p { font: Normal 12px Verdana; }
    a { color: #0000FF; }
    a:hover { color: #FF0000; }
    </style>
    </head>
    <body>

    <table align="center" width="400" cellpadding="1" cellspacing="0" border="1">
    <form method="POST" action="modifica.asp?id=<%=id%>&azione=UPD">
    <tr>
    <td colspan="2">Modifica i dati </td>
    </tr>
    <tr>
    <td width="150">data</td>
    <td width="250"><input type="text" name="data" maxlength="50" style="width: 100%;" value="<%=Rs("data")%>"></td>
    </tr>
    <tr>
    <td>titolo</td>
    <td><input type="text" name="titolo" maxlength="50" style="width: 100%;" value="<%=Rs("titolo")%>"></td>
    </tr>
    <tr>
    <td width="150">descrizione</td>
    <td width="250"><input name="descrizione" type="text" style="width: 100%;" value="<%=Rs("descrizione")%>"></td>
    </tr>
    <tr>
    <td width="150">click</td>
    <td width="250"><input type="text" name="click" maxlength="50" style="width: 100%;" value="<%=Rs("click")%>"></td>
    </tr>
    <tr>
    <td colspan="2" align="right"><input type="submit" value="Modifica"></td>
    </tr>
    <tr>
    <td>Leggi</td>

    </tr>
    </form>
    </table>

    <%
    if (azione== "UPD")
    {
    var data = new String(Request.Form("data"));
    var titolo = new String(Request.Form("titolo"));
    var descrizione = new String(Request.Form("descrizione"));
    var click = new String(Request.Form("click"));
    if (data == "" || titolo == "" || descrizione == "" || click == "")
    {
    Response.Redirect("modifica.asp?id=" + id);
    }
    else
    {
    var r_data = data.replace(/'/g,"''");
    var r_titolo = titolo.replace(/'/g,"''");
    var r_descrizione = descrizione.replace(/'/g,"''");
    var r_click = click.replace(/'/g,"''");
    Cn.Execute("UPDATE news SET data = '" + r_data + "', titolo = '" + r_titolo + "', descrizione = '" + r_descrizione + "', click = '" + r_click + "', WHERE id = " + id );
    Cn.Close();
    Response.Write("<p align=\"center\">Modifica effettuata!</p>");
    }
    }
    %>
    </body>
    </html>
    )

    la connessione è questa

    Response.Buffer = true;
    var Cn = new ActiveXObject("ADODB.Connection");
    Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("/mdb-database/database.mdb"));
    grazie in anticipo a tutti quelli che hanno voglia di aiutarmi
    ciao a tutti
    lunga vita e prosperità

  2. #2
    1. data va tra parentesi quadre (è una parola riservtata)
    2. il valore della data (se il campo è in formato data/ora) va tra ## e non tra ''


  3. #3
    Utente di HTML.it L'avatar di fazius
    Registrato dal
    Mar 2006
    residenza
    Torino
    Messaggi
    870
    grazie
    la data e in formato gg/mm/anno

    1. data va tra parentesi quadre (è una parola riservtata)
    2. il valore della data (se il campo è in formato data/ora) va tra ## e non tra ''

    non puoi fami vedere dove e come perche so poco da come puoi intuire
    te ne sarei eternamente riconoscente

    un saluto
    lunga vita e prosperità

  4. #4
    Invece di mandarla in execute direttamente, salvala dentro una variabile di nome, ad esempio, sql e ancora prima di mandare in execute la variabile sql fatti scrivere il contenuto della variabile sql commentando l'execute.
    codice:
    var sql = "UPDATE news SET data = '" + r_data + "', titolo = '" + r_titolo + "', descrizione = '" + r_descrizione + "', click = '" + r_click + "', WHERE id = " + id;
    Response.Write(sql);
    //Cn.Execute(sql);

  5. #5
    Utente di HTML.it L'avatar di fazius
    Registrato dal
    Mar 2006
    residenza
    Torino
    Messaggi
    870
    ho meramente sostituito il tuo codice cosi

    var sql = "UPDATE news SET data = '" + r_data + "', titolo = '" + r_titolo + "', descrizione = '" + r_descrizione + "',

    click = '" + r_click + "', WHERE id = " + id;
    Response.Write(sql);
    //Cn.Execute(sql);
    Cn.Close();

    ma non va mi stampa a video la stringa, da solo non ce la faccio,
    chiedo troppo ??
    lunga vita e prosperità

  6. #6
    Originariamente inviato da fazius
    ho meramente sostituito il tuo codice cosi

    var sql = "UPDATE news SET data = '" + r_data + "', titolo = '" + r_titolo + "', descrizione = '" + r_descrizione + "',

    click = '" + r_click + "', WHERE id = " + id;
    Response.Write(sql);
    //Cn.Execute(sql);
    Cn.Close();

    ma non va mi stampa a video la stringa, da solo non ce la faccio,
    chiedo troppo ??
    L'obiettivo era proprio quello di stampare la stringa e di verificare se era "perfetta" come istruzione sql.
    Vediamo cosa appare? Copia qui cosa appare sulla pagina...

  7. #7
    Originariamente inviato da fazius
    non puoi fami vedere dove e come perche so poco da come puoi intuire
    te ne sarei eternamente riconoscente

    un saluto
    maro', ma ci vuole tanto a scrivere [data] invece di data e di mettere # al posto di ' ? un minimo di iniziativa personale, no?

  8. #8
    Originariamente inviato da optime
    maro', ma ci vuole tanto a scrivere [data] invece di data e di mettere # al posto di ' ? un minimo di iniziativa personale, no?
    Ma che scherzi??? Poi gli si rompe il computer o si autoformatta l'hard disk... ueee!!!

  9. #9
    Utente di HTML.it L'avatar di fazius
    Registrato dal
    Mar 2006
    residenza
    Torino
    Messaggi
    870
    la saccenza rende gli uomini stupidi, visto che è ovvio che non so niente di programmazione asp non è piu facile farmi vedere invece di perdere tempo ad insultare e sentirsi superiori?
    comunque grazie grazie grazie
    lunga vita e prosperità

  10. #10
    Originariamente inviato da fazius
    la saccenza rende gli uomini stupidi, visto che è ovvio che non so niente di programmazione asp non è piu facile farmi vedere invece di perdere tempo ad insultare e sentirsi superiori?
    comunque grazie grazie grazie
    a futura memoria.

    comunque, mi piacerebbe vedere dov'è l'insulto o l'esibizione di superiorità (mentre ti faccio notare che tu hai usato 'saccenza' e 'stupidi').

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 © 2026 vBulletin Solutions, Inc. All rights reserved.