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

Discussione: update da form

  1. #1

    update da form

    Premetto di avere consultato a lungo il forum prima di scrivervi.
    Sto lavorando ad un seplice form in cui sono visualizzati alcuni campi. I campi fanno parte di un DB con alcuni record. Il form visualizza un determinato record.
    Il form visualizza regolarmente i dati inseriti, provo a modificare un campo e a lanciare sul file che deve aggiornare il db. Qui sorge un problema che non riesco a sistemare. Ecco la segnalazione di errore:

    -----------------2008-08-19 08:06:41 ::1 POST /admin/test_salva.asp |15|800a0401|Prevista_fine_istruzione 18 - ::1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.0;+SLCC1;+ .NET+CLR+2.0.50727;+Media+Center+PC+5.0;+.NET+CLR+ 3.0.04506;+InfoPath.2) 500 0 0 0-----------------
    sembra che sia prevista una fine istruzione ma non capisco quale.

    ---------------------------------------------------------------------------------------
    Posto il codice del form: test_form.asp

    <%@LANGUAGE="VBSCRIPT"%>

    <%
    Dim rsArea__MMColParam
    rsArea__MMColParam = "1"
    if (Request.QueryString("ID") <> "") then rsArea__MMColParam = Request.QueryString("ID")
    %>
    <%
    set rsArea = Server.CreateObject("ADODB.Recordset")
    rsArea.ActiveConnection = MM_connIndex_STRING
    rsArea.Source = "SELECT * FROM aree WHERE ID = " + Replace(rsArea__MMColParam, "'", "''") + ""
    rsArea.CursorType = 0
    rsArea.CursorLocation = 2
    rsArea.LockType = 3
    rsArea.Open()
    rsArea_numRows = 0
    %>



    <table width="468" border="0" cellpadding="0" cellspacing="0" align="center" background="/cm/img/sfondo_admin.jpg">
    <form action="test_salva.asp" method="post" enctype="multipart/form-data" name="form1" id="form1"><tr>
    <td><input type="text" name="titolo" value="<%=(rsArea.Fields.Item("titolo").Value)%>"> </td>
    </tr>
    <tr>
    <td><input type="text" name="descrizione" value="<%=(rsArea.Fields.Item("descrizione").Value )%>"></td>
    </tr>
    <tr>
    <td><input type="text" name="link" value="<%=(rsArea.Fields.Item("link").Value)%>"></td>
    </tr>
    <tr>
    <td><input type="text" name="modifica" value="<%=(rsArea.Fields.Item("modifica").Value)%> "></td>
    </tr>
    <tr>
    <td><input type="text" name="ID" value="<%=Request.QueryString("ID")%>"></td>
    </tr>
    <td><input type="text" name="color" value="<%=(rsArea.Fields.Item("color").Value)%>"></td>
    <td></td>
    </tr>
    <tr>
    <td colspan="3" align="center"><input type="submit" name="form1" value="Salva" class="pulsante"></td>
    </tr>
    </td></tr></form>
    <tr>
    <td colspan="3">[img]/t.gif[/img]</td>
    </tr>
    <tr><td colspan="3" align="center"><span class="separatori">[</span>Pannello<span class="separatori">]</span><span class="separatori">[</span><a href="javascript:history.go(-1)" class="linksveloci">
    Precedente</a><span class="separatori">]</span></td>
    </tr>
    </td></tr>
    </table>

    <%
    rsArea.Close()
    %>

    --------------------------------------------------------------------------------------
    ecco invece il codice di test_salva.asp

    <%@LANGUAGE="VBSCRIPT"%>

    <%
    id = request.queryString("id")
    titolo = request.queryString("titolo")
    descrizione = request.queryString("descrizione")
    link = request.queryString("link")
    color = request.queryString("color")
    modifica = request.queryString("modifica")

    Set conn=Server.CreateObject("ADODB.Connection")
    conn.Open MM_connIndex_STRING2
    Set rs = Server.CreateObject("ADODB.Recordset")

    riga 18 ------->rs.Open = "UPDATE aree SET titolo='"&request.form("titolo")& "', descrizione='"&request.form("descrizione")&"', link='"&request.form("link")&"', color='"&request.form("color")&"', modifica='"&request.form("modifica")&"' WHERE id='"&request.form("id")&"' ", conn
    set rs = nothing
    url="/admin/pannellocontrollo.asp"
    Response.Redirect(url)

    %>
    --------------------------------------------------------------------------------------
    ho evidenziato la riga 18 ove viene segnalato l'errore.

    Grazie in anticipo, probabilmente qualcosa che mi sfugge... a voi piu bravi...passo... e non chiudo
    Danio Felloni
    web applications development

  2. #2
    basterebbe essere più ordinati

    codice:
    sSQL = ""
    sSQL = sSQL & "UPDATE aree SET "
    sSQL = sSQL & " titolo='" & request.form("titolo") & "' "
    sSQL = sSQL & ", descrizione='" & request.form("descrizione") & "' "
    sSQL = sSQL & ", link='" & request.form("link") & "' "
    sSQL = sSQL & ", color='" & request.form("color") & "' "
    sSQL = sSQL & ", modifica='" & request.form("modifica") & "' "
    sSQL = sSQL & " WHERE id='" & request.form("id") & "' "
    
    rs.Open sSQL, conn
    per accorgersi alla fine che non ci voleva "=" dopo rs.open ...


  3. #3

    dati non corrispondenti

    ti ringrazio anche del giusto appunto,
    ho un errore: sempre alla riga 18

    POST /admin/test_salva.asp |24|80040e07|[Microsoft][Driver_ODBC_Microsoft_Access]_Tipi_di_dati_non_corrispondenti_nell'espressione_ criterio. 18 - ::1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.0;+SLCC1;+ .NET+CLR+2.0.50727;+Media+Center+PC+5.0;+.NET+CLR+ 3.0.04506;+InfoPath.2) 500 0 0 45
    Danio Felloni
    web applications development

  4. #4
    ----------------------------------------------------
    *subito* dopo la composizione della stringa SQL metti

    Response.Write "maGGica SQL...: " & sSQL
    Response.Flush

    poi posta quello che viene a video
    ----------------------------------------------------

    molto probabilmente stai scrivendo una stringa in un campo numerico, oppure sbagli la WHERE

    codice:
    sSQL = sSQL & " WHERE id=" & request.form("id") & ""

  5. #5

    vediamo insieme il codice

    posto :

    <%@LANGUAGE="VBSCRIPT"%>

    <%
    id = request.queryString("id")
    titolo = request.queryString("titolo")
    descrizione = request.queryString("descrizione")
    link = request.queryString("link")
    color = request.queryString("color")
    modifica = request.queryString("modifica")

    Set conn=Server.CreateObject("ADODB.Connection")
    conn.Open MM_connIndex_STRING2
    Set rs = Server.CreateObject("ADODB.Recordset")

    sSQL = ""
    sSQL = sSQL & "UPDATE aree SET "
    sSQL = sSQL & " titolo='" & request.form("titolo") & "' "
    sSQL = sSQL & ", descrizione='" & request.form("descrizione") & "' "
    sSQL = sSQL & ", link='" & request.form("link") & "' "
    sSQL = sSQL & ", color='" & request.form("color") & "' "
    sSQL = sSQL & ", modifica='" & request.form("modifica") & "' "
    sSQL = sSQL & " WHERE id=" & request.form("id") & ""

    rs.Open sSQL, conn
    Response.Write "maGGica SQL...: " & sSQL
    Response.Flush


    set rs = nothing
    url="/admin/pannellocontrollo.asp"
    Response.Redirect(url)

    %>

    ancora errore

    2008-08-19 09:14:50 ::1 POST /admin/test_salva.asp |24|80040e14|[Microsoft][Driver_ODBC_Microsoft_Access]_Errore_di_sintassi_(operatore_mancante)_nell'espr essione_della_query_'id='. 18 - ::1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.0;+SLCC1;+ .NET+CLR+2.0.50727;+Media+Center+PC+5.0;+.NET+CLR+ 3.0.04506;+InfoPath.2) 500 0 0 109
    Danio Felloni
    web applications development

  6. #6
    dovresti postare non il codice, ma quello che viene a video. comunque, si intuisce che id non è valido. come lo passi?

    request.form("id")

    sembra non essere il modo giusto

  7. #7

    ... a video

    sto lavorando con vista e IIS. per cui le risposte mi arrivano sul log di IIS e te le ho passate. a video ho:
    An error occurred on the server when processing the URL. Please contact the system administrator.
    If you are the system administrator please click here to find out more about this error.

    per quanto riguarda l'ID atrriva nel form di aggiornamento tramite:
    http://localhost:18/admin/test_form....=1&from=elenco

    infatti nel form che ti ho postato i valori sono presenti e riguardano il record ID=1
    Danio Felloni
    web applications development

  8. #8

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Togli questo dal form:

    codice:
    enctype="multipart/form-data"
    Inoltre non fai nemmeno una replace dell'apice in fase di update del record quindi nel caso in cui qualche campo contenesse un apice andrebbe comunque in errore...

    Roby

  10. #10
    cosa intendi per replace dell'apice?.

    con il tuo consiglio comunque adesso qualcosa succede. Ecco a video:
    maGGica SQL...: UPDATE aree SET titolo='AREA UTENTI' , descrizione='ingresso riservato' , link='/iscritti/index.asp' , color='#000000' , modifica='/admin/gest_aree1.asp' WHERE id=1An error occurred on the server when processing the URL.

    e sul log:
    1 POST /admin/test_salva.asp |31|ASP_0156_:_80004005|Errore_dell'intestazione 18

    si vedono i dati contenuti nel record
    Danio Felloni
    web applications development

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.