Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di P@m
    Registrato dal
    Dec 2006
    Messaggi
    7

    Update non modifica il record del database

    Ciao!
    Sto imparando ad usare asp , seguendo anche la guida di html.it e sono alle prese con un esercizio di modifica dei dati, tramite un form.
    Cliccando sul pulsante "Entra" (che uso per inviare i dati modificati al database) vengo indirizzata ad un'altra pagina dove posso vedere la query (è stato inserito, appunto, un response.write che stampa la query)...sembra tutto ok: non appare nessun errore ma quando controllo il database vedo che il record non ha subito alcuna modifica.

    Dove ho sbagliato?

    Posto il codice:



    Codice PHP:
    <%
    Option Explicit
    Dim strConn
    objConnobjRsstrsqlsubmitted
    Dim id
    titolosottotitolotestodata_vivodata_morto
    If Session("login"then

        strConn 
    Application("dbconn")
        
    submitted Request.QueryString("submitted")
        If 
    submitted then

            
    'cambia i dati
            id = Request.QueryString("id")
            
            response.write "id = " & id & "
    "
            titolo = Replace(Request.Form("titolo"),"'","''")
            sottotitolo = Replace(Request.Form("
    sottotitolo"),"'","''")
            testo = Replace(Request.Form("testo"),"'","''")
            data_vivo = Replace(Request.Form("
    data_vivo"),"'","''")
            data_morto = Replace(Request.Form("data_morto"),"'","''")
            
            
            strsql = "
    UPDATE tbl_news"
            strsql = strsql & " 
    SET ("
            strsql = strsql & "
    titolo '" & titolo & "',"
            strsql = strsql & "
    sottotitolo '" & sottotitolo & "',"
            strsql = strsql & "
    testo '" & testo & "',"
            strsql = strsql & "
    data_vivo #" & data_vivo & "#,"
            
    strsql strsql "data_morto = #" data_morto "#,"')"        
            strsql = strsql & "WHERE id = " & id  
                    
              response.write strsql & "
    "
            Set objConn = Server.CreateObject("ADODB.Connection")
            objConn.Open ("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = c:....")
            Set objRs = Server.CreateObject("ADODB.Recordset")
        
                '
    set objRs objConn.Execute(strsql)
        
            
    objConn.Close
            Set objConn 
    Nothing
        
        
    else    
            
    id Request.QueryString("id")
            
    strConn Application("dbconn")
            
            
    strsql "SELECT * FROM tbl_news WHERE id = " id     
            response
    .write strsql "
    "    
            
    Set objConn Server.CreateObject("ADODB.Connection")
            
    objConn.Open ("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = c:\....")
            
    Set objRs Server.CreateObject("ADODB.Recordset")

            
    set objRs objConn.Execute(strsql)
        
            
            
    id objRs("id")
            
    titolo objRs("titolo")
            
    sottotitolo objRs("sottotitolo")
            
    testo objRs("testo")
            
    data_vivo objRs("data_vivo")
            
    data_morto objRs("data_morto")
            
    %>

            <
    FORM ACTION="cambia_news.asp?submitted=true&id=<%= id %>" METHOD="post">
            <
    div align="center">
            <
    table border="0" width="95%" celpadding="2" cellspacing="2">
                <
    tr>
                    <
    td><h1>Cambia quello che vuoi...<hr align="LEFT" size="1" width="100%" color="navy"></h1></td>
                </
    tr>
                    <
    td align="center">


                        <
    table width="80%" border="0" celpadding="2" cellspacing="2">
                            <
    tr>
                                <
    td>Titolo</td>
                                <
    td><INPUT NAME="titolo" TYPE="TEXT" Value="<%= titolo %>" size="80" MAXLENGTH="80"></td>
                            </
    tr>
                            <
    tr>
                                <
    td>Sottotitolo</td>
                                <
    td valign="top"><TEXTAREA NAME="sottotitolo" ROWS="3" COLS="60"><%= sottotitolo %></TEXTAREA></td>
                            </
    tr>
                            <
    tr>
                            <
    tr>
                                <
    td valign="top">News</td>
                                <
    td valign="top"><TEXTAREA NAME="testo" ROWS="10" COLS="60"><%= testo %></TEXTAREA></td>
                            </
    tr>
                            <
    tr>
                                <
    td nowrap>Data di entrata</td>
                                <
    td valign="top"><INPUT NAME="data_vivo" TYPE="TEXT" Value="<%= data_vivo %>" size="24" MAXLENGTH="24"></td>
                            </
    tr>
                            <
    tr>
                                <
    td nowrap>Data di scadenza</td>
                                <
    td valign="top"><INPUT NAME="data_morto" TYPE="TEXT" Value="<%= data_morto %>" size="24" MAXLENGTH="24"></td>
                            </
    tr>    
                                                                
                            <
    tr>
                                <
    td valign="top">[b][/b]</td>
                                <
    td>
                                </
    td>
                            </
    tr>
                            <
    tr>
                                <
    td colspan="2" align="center">
                                    <
    table width="40%" border="0" celpadding="6" cellspacing="2">
                                        <
    tr>                    
                                            <
    td align="right"><INPUT TYPE="submit" NAME="submit" VALUE="Entra"></td>
                                            <
    td align="left"><INPUT TYPE="reset" NAME="Reset" VALUE="Reset"></td>
                                        </
    tr>
                                    </
    table>
                                </
    td>
                            </
    tr>
                        </
    table>
                    </
    td>
                </
    tr>
            </
    table>
            </
    div>
            </
    FORM>
    <%
    end if

    end if
    %> 

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,563
    Al posto di questo:

    Set objRs = Server.CreateObject("ADODB.Recordset")

    'set objRs = objConn.Execute(strsql)

    questo:

    objConn.Execute(strsql)

    Roby

  3. #3
    Utente di HTML.it L'avatar di P@m
    Registrato dal
    Dec 2006
    Messaggi
    7
    Originariamente inviato da Roby_72
    Al posto di questo:

    Set objRs = Server.CreateObject("ADODB.Recordset")

    'set objRs = objConn.Execute(strsql)

    questo:

    objConn.Execute(strsql)

    Roby
    Ho provato a fare così ed ora dà questo errore:

    Microsoft JET Database Engine error '80040e14'

    Syntax error in UPDATE statement.

    /a/s/p/asppam12/cambia_news.asp, line 36 ....si tratta della riga dove è stata effettuata la modifica.

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,563
    Stampa la query a video prima di eseguirla così verifichi.

    Roby

  5. #5
    Utente di HTML.it L'avatar di P@m
    Registrato dal
    Dec 2006
    Messaggi
    7
    Eccola:

    UPDATE tbl_news SET (titolo = 'prova ',sottotitolo = 'prova asp',testo = 'prova query update',data_vivo = #2/13/2007 4:54:49 PM#,data_morto = #2/22/2007 6:54:49 AM#,WHERE id = 3

    La query mi sembra a posto perchè effettua le modifiche...

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,563
    Prima della WHERE vedo una virgola di troppo...

    Roby

  7. #7
    Utente di HTML.it L'avatar di P@m
    Registrato dal
    Dec 2006
    Messaggi
    7
    Non ci va la virgola prima di WHERE? Ho capito bene?

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da P@m
    Non ci va la virgola prima di WHERE? Ho capito bene?
    Provalo senza... se funziona allora e' ragionevole supporre che l'errore fosse proprio quello

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  9. #9
    Utente di HTML.it L'avatar di P@m
    Registrato dal
    Dec 2006
    Messaggi
    7
    Avete ragione! Ho controllato e la virgola non va prima di where. Ho corretto!
    Purtroppo rimane ancora: Microsoft JET Database Engine error '80040e14'

    Syntax error in UPDATE statement.

    /a/s/p/asppam12/cambia_news.asp, line 36

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,563
    Vedo anche una parentesi di troppo... :master:

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