54 messaggi dal 07 aprile 2005
salve a tutti,
il seguente codice aggiorna il contenuto di un carrello degli acquisti di un sito in classic ASP:

SET RS = Server.CreateObject( "ADODB.Recordset" )
sqlString = "SELECT cart_id, cart_quantity FROM cart WHERE cart_userID=" & userID &""
RS.Open sqlString, Con, adOpenDynamic, adLockOptimistic
WHILE NOT RS.EOF
newQ = TRIM( Request( "pq" & RS( "cart_id" ) ) )
deleteProduct = TRIM(Request("pd" & RS( "cart_id" ) ) )
IF newQ = "" OR newQ = "0" OR deleteproduct<>"" THEN
RS.Delete
ELSE
IF isNumeric( newQ ) THEN
RS( "cart_quantity" ) = newQ
END IF
END IF
RS.MoveNext
WEND
RS.Close
SET RS = Nothing

Tale codice ha funzionato correttamente per anni ma ultimamente (posso solo ipotizzare a seguito di una qualche upgrade/update sul server sql del mio provider) restituisce l'errore

ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

in particolare il problema (scindendo rs.open riga per riga nelle sue componenti
RS.ActiveConnection = Con
RS.CursorType = adOpenDynamic
RS.LockType = adLockOptimistic)
sembra riguardare proprio il parametro adLockOptimistic

cosa causa il problema?
25 messaggi dal 13 agosto 2005
...mmm. prova a vedere questi post...
p.s.: mi scuso con l'amministratore per aver postato link a siti esterni

http://forum.html.it/forum/showthread.php?threadid=842903

http://www.glugitalia.org/archivio/glugarc23.php
54 messaggi dal 07 aprile 2005
grazie per la risposta, ma non vedo una correlazione

questo codice ha funzionato perfettamente per alcuni anni:


SET RS = Server.CreateObject( "ADODB.Recordset" )
sqlString = "SELECT cart_id, cart_quantity FROM cart WHERE cart_userID='"& userID &"'"
RS.Open sqlString, Con, adOpenDynamic, adLockOptimistic


ora riporta l'errore indicato su "adLockOptimistic"
sono quindi più propenso a ritenerlo "colpa" di una modifica sul server sql (forse un upgrade da 2000 a 2005?)

correttamente, rimuovendo adLockOptimistic, viene segnalato l'errore

ADODB.Recordset error '800a0cb3'

Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.

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.