18 messaggi dal 03 aprile 2006
Buongiorno volevo chiedere una domanda l'altro giorno ho dovuto cambiare il db access del mio sito e l'ho dovuto sostituire con db mysql come per magia sono sorti i problemi che sono riuscito a risolvere ma mi è rimasto un unico errore che non so come fare quando aggiorno i prodotti nel carrello mi dice:

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

la riga è questa:rs.movenext


Questo è il codice

<%

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")
%>

<!--#include file="verifica.asp"-->
<!--#include file="ADOVBS.INC"-->


<%
'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<br>
<a href="index.asp">Torna ai prodotti</a>
</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)
<br><a href="index.asp">Torna ai prodotti</a>
</td>
</tr>
</form>
</table>
<!-- FINE TESTO PAGINA -->
</td>
</tr>
</table>
<td bgcolor="#FFFFFF">&nbsp;<!-- cella vuota da non modificare --></td>
</tr>
<tr>
<td valign="bottom">
<img border="0" src="images/angolo4.gif" width="25" height="25"></td>
<td bgcolor="#FFFFFF">&nbsp;<!-- cella vuota da non modificare --></td>
<td valign="bottom">
<img border="0" src="images/angolo3.gif" width="25" height="25"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center">

<img border="0" src="images/tos.jpg" hspace="8" vspace="8" width="180" height="135">


</html>
</body>
</html>
Ciao,
prova a far stampare la query che ti da l'errore cosi vedi se eventuali parametri presi dal recordset, hanno un valore o no.

"This message was written using 100% recycled electrons"
18 messaggi dal 03 aprile 2006
SAlve rieccomi sono riuscito a risolvere l'errore era nel db era un problema di chiave primarie una volt asostituita è andato tutto a posto
>Ti ringrazio per il tuo aiuto

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.