-
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 80Questa è la riga rs.movenext
<%
Dim con
Dim comm
Dim rsSet 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>
-
if isnumeric(pc) then
if pc = 0 then
rs.delete
else
rs("quantita") = pc
end if
end if
rs.movenextper caso va in errore quando pc = 0? Di conseguenza quando entra nella condizione che elimina il record corrente?
-
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 :
-
Ok... in effetti ho risposto con un po' di ritardo , hai già risolto
In bocca al lupo