Come elimino i dati dal database access secondo l'id?

metalgemini

Utente Attivo
14 Apr 2004
745
0
0
Ciao a tutti, sono sempre io, il rompiscatole di asp e db access!
Hehehehe...veniamo al dunque...io ho una paginetta la quale dovrebbe eliminare i dati secondo l'id...ma ovviamente mi da l'errore: "Impossibile cancellare i dati dalla tabella..."
Qualcuno sa dirmi quali potrebbero essere i motivi?
Non posso postare il codice xkè non me lo ricordo e non ce l'ho qui! :dipser:

Grazie 10.000 :)

Claudio
 
Possibili ipotesi

Considerato che non posso dirti che c'è un errore nel codice, perchè non l'hai postato, posso dire che quel messaggio 'Impossibile cancellare i dati dalla tabella' può essere dovuto al fatto che non hai i privilegi per poter modificare quella tabella. Io non so se gestisci questo database in rete con altre persone!! Può essere dovuto anche al fatto che quando accedi al database esso è aperto in sola lettura, e per questo ti dà l'errore 'Impossibile cancellare i dati dalla tabella'

Altre ipotesi non è posso fare per il momento!!

Ciao
 
Grazie francovb per la tua risposta!
La mia applicazione la vedo in locale con IIS, il db ha tutti i permessi dato ke i dati li leggo e li salvo anke.

per eliminare i dati uso la seguente stringa x la query:
Dim Rs, query
query= "delete * from tabella where id="&request.querystring("id")
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open query, Conn, 3, 3

(non fare caso all'esattezza o meno di questo codice xkè purtroppo lavoro a casa e qui sono al lavoro, ma se mi dice "impossibile eliminare i dati" presumo ke il codice sia giusto)

poi devo indicare i nomi dei campi da eliminare così?
Rs("nomecampo")
Rs("nomecampo")
Rs("nomecampo")

La prox volta mi porto il codice da postare cosi' è tuto piu facile ciao e grazie! :byebye:
 
Risultati dei miei test

Ciao,

Adesso che ho il codice posso dire che le righe di codice sono esatte. Poi nel momento in cui esegui Rs.Open query,Conn,3,3 il record viene cancellato e non devi indicare altre istruzioni dopo di quella.

Adesso mi chiedo dove sta la stringa di connessione al database o se l'hai omessa per uno sbaglio di copia incolla delle righe di codice, l'hai impostata in questo modo

conn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("<nome database>") sempre se usi Access

Un'altra cosa che noto è l'uso dell'oggetto request, quindi ci sarà una pagina dove indicherai con un form il codice Identificativo (o id) e lo passi ad un'altra pagina asp

<Form name=frm1 METHOD=GET action="http://localhost/test/test74/delete.asp">
<B>Codice Utente</B><Input type=text name="t1" size=10>
<BR>
<Input type=submit value="Delete">
</Form> [delrecord.asp]

e poi la pagina delete.asp
<%
dim conn
dim rs

conn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("datab01.mdb")
set rs=Server.CreateObject("ADODB.Recordset")
isql="Delete from mytable where id=" & Request.QueryString("t1")
rs.open isql,conn,3,3
set rs=nothing
%>

Prova a controllare il codice da me postato che risolve il tuo problema (testato e non da errore) con quello che hai tu e vedi di trovi.
Con il codice delle due pagine asp eseguite sul mio Personal Web Server funzionano correttamente e non mi segnala tale errore. (il database usato è formato access 2000)

Nel file zip trovi un database di prova e due pagine asp che riproducono le righe di codice da me inserite nel messaggio
basta che esegui 'http://localhost/test/test74/delrecord.asp"
e verrà una casella di testo dove metti uno di questi id 1-4 e
poi clicca su Delete verrà eseguito il codice contenuto nella pagina delete.asp con l'id passato e se nn ci sono errori e quindi viene cancellato il record la pagina deve venire bianca


Ciao a presto!!
 

Allegati

Ultima modifica:
Niente da fare...mi dice "Impossibile eliminare i dati dalla tabella..." e in più quando cerco di modificare dei records mi dice ke il db è di sola lettura...eppure fino al giorno prima riuscivo a modificare i records...sapete dirmi qualcosa??
Grazie 1000 :byebye:

Modifico il messaggio anzi ke postarne uno nuovo...ecco il codice della pagina "eliminalink.asp?id=7" :

<%
RecordID = Request.querystring("id")
if RecordID = "" then
Response.write "Non hai specificato l‘ID. Torna indietro."
Response.End
end if

'Imposto la connessione al DB
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("mdb-database/database.mdb")

Dim objRs
Set objRs = Server.CreateObject("ADODB.Recordset")
objRs.Open "delete * from MENU where id =" & RecordID, Conn, 3, 3
objRs.Update
'Chiudiamo il recordset
objRs.Close
set objRs = Nothing

'Chiudiamo la connessione
Conn.Close
set Conn = Nothing
%>

Dati eliminati
 
Ultima modifica:
Per venire alla soluzione dell'errore

Il codice da te riportato risulta essere esatto

Il codice che ho postato nel precedente messaggio a me risultava funzionale con il Personal Web server di win 98

Ma lo stesso codice(funzionante per pws di win 98) non risultava funzionante per windows xp prof service pack 1 e l'IIS 5.1 installato.
A me veniva la pagina di errore che adesso allego in formato zip Scomapatti il tutto e troverai un file jpg

Se ti viene questa pagina di errore allora la soluzione è nelle mie mani!! e ti dirò come risolverlo definitivamente sulla base del messaggio di risposta che mi darai!!

Ciao a presto!!
 

Allegati

Risolvi l'errore secondo la procedura...

Salve,

In riferimento alla tua risposta posso consigliarti la seguente procedura che ti allego in file zip. Trovi un file html che ti descrive passo passo la procedura per non generai più l'errore quando viene eseguita sul server la pagina asp che ti cancella i dati dal database

Ciao aspetto tue risposte!!
 

Allegati

niente cartella test...

francovb ha scritto:
Salve,

In riferimento alla tua risposta posso consigliarti la seguente procedura che ti allego in file zip. Trovi un file html che ti descrive passo passo la procedura per non generai più l'errore quando viene eseguita sul server la pagina asp che ti cancella i dati dal database

Ciao aspetto tue risposte!!

Ciao francovb, ho provato come hai detto tu ma io non ho la cartella "test" nella cartella inetpub :ister:
sai dirmi il perkè? grazie ciao ciao
 
il perchè è semplice!!

La cartella test me la sono creata io sul mio Iis all'interno della directory Inetpub sotto-cartella wwwroot

Però se tu ti crei una cartella con un nome diverso stai attento all'url per accedere alla pagina asp che diventa

"http://localhost/<nome cartella>/<file con estensione asp>"

ciao
 

Discussioni simili