Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Errore in UPDATE

  1. #1
    Utente di HTML.it L'avatar di Bioboi
    Registrato dal
    Nov 1999
    Messaggi
    110

    Errore in UPDATE

    Sto cercando di fare una query di update ad un database in ASP.

    Nella tabella ho sette colonne più la colonna ID.

    Devo sostituire tutti i campi tranne, oviamente, la colonna contatore. I dati vengono da un form.

    Non riesco!

    Ottengo il seguente errore:

    codice:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e10' 
    
    [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 7. 
    
    /risultatiplayoff.asp, line 27

    Come mai?

    Ecco il codice della pagina che elabora i risultati del form:

    codice:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
    
    <body><%
    
    Dim rs, SQL
    a=request.form("textfield7")
    b=request.form("textfield")
    c=request.form("textfield2")
    d=request.form("textfield3")
    e=request.form("textfield4")
    f=request.form("textfield5")
    g=request.form("textfield6")
    'apro la connessione
    set OBJdbConnection=Server.CreateObject("ADODB.Connection")
    set MIORECORD=Server.CreateObject("ADODB.RECORDSET")
    OBJdbConnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.MapPath("\mdb-database\datarisultati.mdb")
    
    
    SQL = "UPDATE risultatirealtime SET gara=a,squadra1=b,squadra2=c,textfield3=d,textfield4=e,textfield5=f,textfield6=g"
    
    set miorecord=OBJdbConnection.execute(SQL)
    %> 
    Vedi i dati inseriti
    </body>
    </html>

    la riga dell'errore è quella di

    codice:
    set miorecord=OBJdbConnection.execute(SQL)


    Qui potete vedere un'immagine della tabella del database: http://www.hcsassari.it/tabellarisultatirealtime.jpg

  2. #2
    L'errore si verifica su quella riga perché la stringa sql non è corretta. Le variabili a, b, ..., g non le puoi inserire in quel modo nel corpo della stringa sql, ma devi includere il loro valore. Se i campi sono numerici puoi scrivere:
    codice:
    SQL = "UPDATE risultatirealtime SET gara=" & a & ", squadra1=" & b & ", squadra2=" & c & ", textfield3=" & d & ", textfield4=" & e & ", textfield5=" & f & ", textfield6=" & g
    I campi di tipo testo vanno invece racchiusi tra apici ('):
    codice:
    SQL = "UPDATE risultatirealtime SET gara='" & a & "', ...
    L'argomento è stato discusso centinaia di volte su questo forum, ti consiglio di fare una ricerca e, soprattutto, utilizzare la tecnica dei parametri e non l'inclusione come nel mio esempio, in quanto sarebbe facile per un malintenzionato leggere o alterare il contenuto del database inserendo nei campi del form opportune stringhe (sql injection).
    Chi non cerca trova.

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.