55 messaggi dal 19 luglio 2005
Salve!

E' ormai da un pò che utilizzo ASP per le mie pagine web ma per la prima volta mi stò trovando davanti a DB relazionali per gestire diverse informazioni. Il mio problema é il seguente: quando provo ad eliminare un record "linkato" ad un'altra tabella IIS mi restituisce questo errore:

Microsoft JET Database Engine error '80004005'

Impossibile eliminare dalle tabelle specificate.

/carrello/bo/Default.asp, line 69

Questo perchè stò utilizzando il seguente codice
sql = "delete * FROM qryLinee WHERE id="&Request("del")
set rs = Conn.execute(sql)


Mentre se provo a fare la stessa cosa così:
sql = "select * FROM qryLinee WHERE id="&Request("del")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, Conn, 3,3
rs.Delete


l'errore diventa:

Microsoft JET Database Engine error '80040e21'

Impossibile aggiornare. Database o oggetto di sola lettura.

/carrello/bo/Default.asp, line 72

Inoltre con quest'altra soluzione:
sql = "select * FROM qryLinee WHERE id="&Request("del")
set rs = Conn.execute(sql)
Rs.Delete


l'errore visualizzato é

ADODB.Recordset error '800a0cb3'

Il set di record corrente non supporta l'aggiornamento. Potrebbe trattarsi di una limitazione del provider o del tipo di blocco selezionato.

/carrello/bo/Default.asp, line 74

Chiaramente sono impazzito dietro a permessi vari i quali non c'entravano assolutamente nulla in quanto tutto dipende dalle relazioni tra i database. A questo punto chiedo a voi qual'è la strada più corretta da percorrere e sopratutto la più "rapida" visto che ci tento ormai da giorni.

Grazie tante,
Claudio
Modificato da cl4ud10 il 30 settembre 2005 12.10 -
34 messaggi dal 31 maggio 2005
I motivi degli errori sono diversi.
Quando utilizzi un cursore readonly (ad esempio quello del con.execute) non puoi effettuare aggiornamenti.
Nel primo caso invece, se nel database sono stati inseriti dei vincoli di integrità referenziale, non c'è modo di cancellare il tuo record se non aver prima cancellato tutti i record delle altre tabelle linkate.
Ciao
Sandro
55 messaggi dal 19 luglio 2005
Ma io ho creato una tabella (direttamente con Access) e dal codice ho fatto la prova con rs.Delete ma continua a darmi lo stesso errore nonostante la tabella sia vuota (ma relazionata). A questo punto ho una domanda: essendo le tabella relazionate TUTTE tra di loro.. non ho modo di risolvere se non cancellando l'intero DB?!

Sarebbe allucinante..
..come mai ASP non é strutturato in modo da poter gestire tutte le funzioni di MS Access il quale elimina tranquillamente una tabella (o un record relazionato) in modo recursivo senza alcun problema?

Grazie per l'aiuto
Claudio
34 messaggi dal 31 maggio 2005
cl4ud10 ha scritto:
Ma io ho creato una tabella (direttamente con Access) e dal codice ho fatto la prova con rs.Delete ma continua a darmi lo stesso errore nonostante la tabella sia vuota (ma relazionata).


Non ho capito bene, qual'è la tabella vuota ?
Non hai bisogno di cancellare il db, devi cancellare i vari record delle tabelle interessati alla relazione partendo dall'ultima.
Es. tabella clienti relazionata a tabella agenti: prima di eliminare un agente devi eliminare tutti i clienti che hanno quell'agente.
Ciao
Sandro

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.