• User Newbie

    errore

    Ciao a tutti sono nuovo di questo forum volevo chiedere gentilmente chi mi può dare una mano a risolvere un errore che non riesco a capire Grazie anticipatamente.

    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
    Errore durante l'aggiornamento basato su query. Impossibile trovare la riga da aggiornare.
    /carrello.asp, line 80

    Questa è la riga rs.movenext

    <%

    Dim con
    Dim comm
    Dim rs

    Set con = Server.CreateObject("ADODB.Connection")
    con.Open "driver={MySQL ODBC 3.51 Driver};server=localhost;uid=root;database=prova;"

    Set rs = Server.CreateObject("ADODB.Recordset")
    Set comm = Server.CreateObject("ADODB.Command")
    %>

    <%
    'all'interno di questo file vengono inclusi altri tre file esterni che vengono
    'utlizzati:
    ' il file connessione che gli serve per potersi connettere al database
    'il file verifica che serve per controllare l'identità dell'utente connesso
    'il file ADOVBS.INC, porta con se tutte le costanti ADO ed i rispettivi valori
    'per lavorare in modo piu' semplice con i database,inoltre per migliorare
    'la lettura del codice sorgente.

    'Richiamo l'id del prodotto da inserire
    id_prodotto = request("id")

    'Aggiunta nuovo prodotto nel Carrello
    'Controllo che il prodotto sia già presente nel carrello
    ' elenchiamo tutti i prodotti in una lista di Checkbox per dare la possibilita'
    ' all' utente di selezionare i prodotti interessati.

    if len(id_prodotto) <> 0 then
    strSQL = "select id_prodotto, id_user from tbl_Carrello where id_prodotto = " & id_prodotto & " and id_user = " & session("id_utente")

            set rs = con.execute(strSQL)
    	'Se il prodotto non esiste, lo aggiungo
    	'Altrimenti aggiorno la quantita' di 1 unità
    	if rs.eof then
    		'Aggiungo il prodotto
    		strSQL = "insert into tbl_Carrello(id_user, id_prodotto, quantita) values(" & session("id_utente") & ", " & id_prodotto & ", 1)"
    	'	con.execute(strSQL)
    	else
    		'Aggiorno la quantità
    		strSQL = "update tbl_Carrello set quantita = quantita + 1 where id_prodotto = " & id_prodotto & " and id_user = " & session("id_utente")
    		con.execute(strSQL)
    	end if
    rs.close
    set rs = nothing
    

    end if

    'Aggiorno il carrello
    if request("azione") = "aggiorna" then
    'Controllo quali prodotti aggiornare o eliminare
    set rs = Server.CreateObject("ADODB.Recordset")
    rs.activeconnection = con
    rs.cursortype = adOpenDynamic
    rs.locktype = adLockOptimistic
    strsql = "select * from tbl_Carrello where id_user = " & session("id_utente")
    rs.open strsql

    'Elenco dei prodotti nel carrello
    'E modifica...
    while not rs.eof
    	pc = request("pc_" & rs("id_prodotto"))
    
    	if isnumeric(pc) then
    		if pc = 0 then
    			rs.delete
    		else
    			rs("quantita") = pc
    		end if
    	end if
                	rs.movenext
    wend
    'Fine
    
    rs.close
    set rs = nothing
    'Fine
    

    end if
    %>

    <html>
    <head>
    <title>Il tuo carrello</title>
    </head>

    <body>
    <%'Inizio seconda parte del codice in uso %>
    <h1>Il tuo Carrello</h1>
    <hr>

    <table align="center" width="500" border="1">
    <form method="post" action="carrello.asp?azione=aggiorna">
    <tr bgcolor="#C0C0C0">
    <td align="center" width="300">Prodotto</td>
    <td align="center" width="100">Quantita'</td>
    <td align="center" width="100">Prezzo</td>
    </tr>
    <%
    'Inizializzo le variabili per il prezzo totale
    var_tot = 0

    'Visualizzo tutti i prodotti del carrello
    strSQL = "select id_prodotto, id_user, quantita from tbl_Carrello where id_user = " & session("id_utente")
    set rs = con.execute(strSQL)
    
    	'Il carrello e' vuoto ?
    	if rs.eof then
    	%>
    	<tr>
    		<td colspan="3" align="center">
    			Il tuo carrello e' vuoto
    
    			[url="index.asp"]Torna ai prodotti
    		</td>
    	</tr>
    	<%
    	end if
    	'Fine
    
    	'Elenco dei prodotti
    	while not rs.eof
    		'Prelevo tutti i dati dal carrello
    		id_prodotto = rs("id_prodotto")
    		qnt = rs("quantita")
    		'Richiamo le informazioni relative al prodotto
    		'e aggiorno il valore del prezzo totale
    		strSQL = "select nome, prezzo,foto from tbl_Prodotti where id = " & id_prodotto
    		set rs2 = con.execute(strSQL)
    			nome = rs2("nome")
    			prezzo = rs2("prezzo")
    			var_tot = var_tot + (prezzo * qnt)
    		rs2.close
    		set rs2 = nothing
    		'Fine
    
    		'Visualizzo i prodotti nella tabella
    		%>
    		<tr>
    			<td><%=nome%></td>
    			<td><input type="text" name="pc_<%=id_prodotto%>" value="<%=qnt%>" size="2" maxlength="2"></td>
    			<td><%=formatnumber(prezzo, 2)%> ?</td>
    		</tr>
    		<%
    		'Fine
    	rs.movenext
    	wend
    rs.close
    set rs = nothing
    'Fine
    %>
    <tr>
    	<td colspan="2" bgcolor="#C0C0C0" align="center">
    		<input type="submit" value="aggiorna carrello">
    	</td>
    	<td>
    		Tot. <%=formatnumber(var_tot, 2)%> ?
    	</td>
    </tr>
    <tr>
    	<td colspan="3">
    	Quantità = 0 (elimina il prodotto dal carrello)
    

    [url="index.asp"]Torna ai prodotti
    </td>
    </tr>
    </form>
    </table>

          </td>
          </tr>
        </table>
        <td bgcolor="#FFFFFF"></td>
      </tr>
      <tr>
        <td valign="bottom">
        ![image](images/angolo4.gif)</td>
        <td bgcolor="#FFFFFF"></td>
        <td valign="bottom">
        ![image](images/angolo3.gif)</td>
      </tr>
    </table>
    </td>
    

    </tr>
    <tr>
    <td align="center">

        ![image](images/tos.jpg)
    

    <span id="alma.gif">

    » Alma.it

    </span>

    </td>
    

    </tr>
    </table>

    </body>

    </html>
    </body>
    </html>


  • User Attivo

    if isnumeric(pc) then
    if pc = 0 then
    rs.delete
    else
    rs("quantita") = pc
    end if
    end if
    rs.movenext

    per caso va in errore quando pc = 0? Di conseguenza quando entra nella condizione che elimina il record corrente?


  • User Newbie

    TI ringrazio per la risposta ma il problema era nel db quando ho effettuato il passaggio da access a sql ho inserito una chiave errata sistemata quella tutto è andato a posto :


  • User Attivo

    Ok... in effetti ho risposto con un po' di ritardo :sbonk: , hai già risolto 🙂

    In bocca al lupo 😉