4 messaggi dal 24 gennaio 2012
buonasera a tutti,
ho un problema con l'eliminazione multipla di record in un DB access.
Di seguito il codice:

<% Set RsCercaAttivita=server.CreateObject("ADODB.recordset")
sqlCercaAttivita="select * from Attivita where CodiceCliente="&Session("CodiceCliente")&""
RsCercaAttivita.open sqlCercaAttivita, Connessione

while not RsCercaAttivita.eof

Set RsEliminaAttivita=server.CreateObject("ADODB.recordset")
sqlEliminaAttivita=" Delete * from Attivita where CodiceCliente="&Session("CodiceCliente")&""
RsEliminaAttivita.open sqlEliminaAttivita, Connessione

RsCercaAttivita.movenext
wend
RsCercaAttivita.close
%>

il risultato e' che l'eliminazione funziona ma alla fine mi visualizza questo messaggio:

Microsoft JET Database Engine error '80004005'
Record eliminato.
EliminaCliente.asp, riga 34 (ossia la riga che contiene il while)

ho notato che questo messaggio mi viene visualizzato solo quando ci sono piu' record da eliminare...
Potete darmi qualche indicazione??
Modificato da claudiofesta il 24 gennaio 2012 20.58 -
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao, benvenuto nel forum!
penso che potresti eliminare i record senza doverli estrarre prima dal database. Basta una DELETE, prova a sostituire tutto il blocco di codice che hai postato con queste due righe:

<%
sqlEliminaAttivita= "Delete * from Attivita where CodiceCliente="&Session("CodiceCliente")
Connessione.Execute sqlEliminaAttivita
%>
Nota come non ci sia neanche bisogno di un oggetto Recordset, perché il comando DELETE non restituisce records.
E' sufficiente invocare il metodo .Execute dell'oggetto Connection.

ciao
Modificato da BrightSoul il 24 gennaio 2012 22.14 -

Enjoy learning and just keep making
4 messaggi dal 24 gennaio 2012
grazie BrightSoul ma il problema persiste e l'errore dato sempre lo stesso.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao, scusami... non ho ben compreso perché ti è necessario un ciclo while. Se provassi a sostituire TUTTO il blocco di codice, che inizia da Set RsCercaAttivita e termina con RsCercaAttivita.close con le sole due righe del post precedente, otterresti comunque l'eliminazione delle attività di quel client.

Il tuo codice è esattamente quello che hai postato oppure c'è dell'altro? Vedo che crei un recordset chiamato RsCercaAttivita, lo cicli, ma poi non leggi alcuno dei campi dei record. Così è superfluo, puoi rimuovere quel pezzo di codice ed usare solo il comando DELETE.

ciao

Enjoy learning and just keep making

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.