Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    327

    [ASP] Eliminazione di un record

    Scusate ragazzi...
    ...ho un link in una pagina che mi rimanda alla cancellazione di un file e relativo record, così composto:

    codice:
    ">Elimina
    La pagina CancellaFoto.asp è questa:

    codice:
    <%
    Dim canc,objFSO
        canc = Request.QueryString("canc")
    	If cbool(canc) = true Then
    		Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    
    		'Il file viene cancellato
            	objFSO.DeleteFile Server.MapPath("/prodotti/" & Request.QueryString("nomefile"))
    		Set objFSO = Nothing	
    	End If
    	
    ' DEFINISCO LE VARIABILI CHE MI SERVONO PER L'APPLICAZIONE
    Dim sc, cn, rs, sql, img
    img = request.QueryString("canc")
    if img <>"" then
    
        ' DEFINISCO LA STRINGA DI CONNESSIONE
        sc = ""
        sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
        sc = sc & Server.MapPath("/db/database.mdb")
    
        ' IMPOSTO LA CONNESSIONE EDIL RECORDSET
        Set cn = Server.CreateObject("ADODB.Connection")
        Set rs = Server.CreateObject("ADODB.Recordset")
    
        ' APRO LA CONNESSIONE COL DATABASE
        cn.Open sc
    	
    	sql = "SELECT * FROM UpLoad WHERE nome_file="&img
    	Set rs = Server.CreateObject("ADODB.Recordset")
    
    	rs.Open sql, cn ,3,3
    	rs.delete
    	rs.Close
    
    	set rs = Nothing
    	cn.Close
    	set cn = Nothing
    %>
    Adesso il problema è che il file me lo cancella, ma nn mi elimina il record corrispondente a quel file nel database...dove sbaglio? :master:
    Errare è umano, Perseverare è Diabolico.
    sapiente è colui ke sa di non sapere.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    327
    Provo a pulire un pò il codice:
    codice:
    <%
    ' DEFINISCO LE VARIABILI CHE MI SERVONO PER L'APPLICAZIONE
    Dim canc,sc, cn, rs, sql, objFSO
        canc = Request.QueryString("canc")
    	
        ' DEFINISCO LA STRINGA DI CONNESSIONE
        sc = ""
        sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
        sc = sc & Server.MapPath("/db/database.mdb")
    
        ' IMPOSTO LA CONNESSIONE EDIL RECORDSET
        Set cn = Server.CreateObject("ADODB.Connection")
        Set rs = Server.CreateObject("ADODB.Recordset")
    
        ' APRO LA CONNESSIONE COL DATABASE
        cn.Open sc
    	
    	sql = "SELECT * FROM UpLoad WHERE nome_file="&canc
    	Set rs = Server.CreateObject("ADODB.Recordset")
    
    	rs.Open sql, cn ,3,3
    	rs.delete
    	rs.Close
    
    	set rs = Nothing
    	cn.Close
    	set cn = Nothing
    	
    	If cbool(canc) = true Then
    		Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    
    		'Il file viene cancellato
    		objFSO.DeleteFile Server.MapPath("/prodotti/" & Request.QueryString("nomefile"))
    		Set objFSO = Nothing	
    	End If
    %>
    ..ma il risultato non cambia...
    Errare è umano, Perseverare è Diabolico.
    sapiente è colui ke sa di non sapere.

  3. #3
    nome_file immagino sia alfanumerico, quindi la variabile va tra apici

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    327
    ho corretto così il codice:

    codice:
    <%
    ' DEFINISCO LE VARIABILI CHE MI SERVONO PER L'APPLICAZIONE
    Dim strDEL, sc, cn, rs, sql, objFSO
        strDEL = Request.QueryString("canc")
    		
    		' DEFINISCO LA STRINGA DI CONNESSIONE
    	    sc = ""
        	sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
    	    sc = sc & Server.MapPath("/db/database.mdb")
       		' IMPOSTO LA CONNESSIONE ED IL RECORDSET
        	Set cn = Server.CreateObject("ADODB.Connection")
        	' APRO LA CONNESSIONE COL DATABASE
        	cn.Open sc
    		
    		sql = "SELECT * FROM UpLoad WHERE nome_file = '" & strDEL & "'"
    		Set rs = Server.CreateObject("ADODB.Recordset")
    		rs.Open sql, cn, 2, 3
    	
    			DO WHILE NOT rs.EOF
    				rs.MoveFirst
    				rs.Delete
    				rs.MoveNext
    			Loop
    
    		rs.Close
    		Set rs = Nothing
    		cn.Close
    		Set cn = Nothing
    		
    	'ELIMINAZIONE DEL FILE DALLA CARTELLA SUL SERVER
    	If cbool(canc) = true Then
    		Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    
    		'Il file viene cancellato
    		objFSO.DeleteFile Server.MapPath("/prodotti/" & Request.QueryString("nomefile"))
    		Set objFSO = Nothing	
    	End If
    	
    %>
    ..ma niente da fare..continua a lasciarmi il record nel DB...
    Errare è umano, Perseverare è Diabolico.
    sapiente è colui ke sa di non sapere.

  5. #5
    codice:
    sql = "Delete * FROM UpLoad WHERE nome_file = '" & strDEL & "'"

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    327
    Modifico così

    codice:
    <%
    ' DEFINISCO LE VARIABILI CHE MI SERVONO PER L'APPLICAZIONE
    Dim strDEL, sc, cn, rs, sql, objFSO
        strDEL = Request.QueryString("canc")
    		
    		' DEFINISCO LA STRINGA DI CONNESSIONE
    	    sc = ""
        	sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
    	    sc = sc & Server.MapPath("/db/database.mdb")
       		' IMPOSTO LA CONNESSIONE ED IL RECORDSET
        	Set cn = Server.CreateObject("ADODB.Connection")
        	' APRO LA CONNESSIONE COL DATABASE
        	cn.Open sc
    		
    		sql = "DELETE * FROM UpLoad WHERE nome_file = '" & strDEL & "'"
    		Set rs = Server.CreateObject("ADODB.Recordset")
    		rs.Open sql, cn, 2, 3
    			
    	'ELIMINAZIONE DEL FILE DALLA CARTELLA SUL SERVER
    	If cbool(canc) = true Then
    		Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    
    		'Il file viene cancellato
    		objFSO.DeleteFile Server.MapPath("/prodotti/" & Request.QueryString("nomefile"))
    		Set objFSO = Nothing	
    	End If
    	
    		rs.Close
    		Set rs = Nothing
    		cn.Close
    		Set cn = Nothing
    
    	
    %>
    ...mi da questo errore:

    ADODB.Recordset error '800a0e78'

    L'operazione non è consentita se l'oggetto è chiuso.

    /admin/CancellaFoto.asp, line 28
    Errare è umano, Perseverare è Diabolico.
    sapiente è colui ke sa di non sapere.

  7. #7
    Ma, io non ho guardato con attenzione tutto il codice che hai scritto, mi sono limitato a vedere che la stringa sql non era scritta correttamente per eliminare il record.
    Lo script va rivisto !
    prova a fare un redirect qui

    codice:
    response.redirect("cancellato.asp")
    
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
    e poi scusa ma la condizione If non prevede un then e un else ?

    Altrimenti a che serve ?

  8. #8
    per cancellare devi usare la .Excute della connection

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    327
    C'è qualcuno che ha due minuti di tempo per rivedere il mio codice...e magri postarmi il codice sbagliato?
    Ve ne sarei grato!

    Questo è il mio codice che non funziona:

    codice:
    <%
    ' DEFINISCO LE VARIABILI CHE MI SERVONO PER L'APPLICAZIONE
    Dim strDEL, sc, cn, rs, sql, objFSO
        strDEL = Request.QueryString("canc")
    		
    		' DEFINISCO LA STRINGA DI CONNESSIONE
    	    sc = ""
        	sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
    	    sc = sc & Server.MapPath("/db/database.mdb")
       		' IMPOSTO LA CONNESSIONE ED IL RECORDSET
        	Set cn = Server.CreateObject("ADODB.Connection")
        	' APRO LA CONNESSIONE COL DATABASE
        	cn.Open sc
    		
    		sql = "DELETE * FROM UpLoad WHERE nome_file = '" & strDEL & "'"
    		Set rs = Server.CreateObject("ADODB.Recordset")
    		rs.Open sql, cn, 2, 3
    			
    	'ELIMINAZIONE DEL FILE DALLA CARTELLA SUL SERVER
    	If cbool(canc) = true Then
    		Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    
    		'Il file viene cancellato
    		objFSO.DeleteFile Server.MapPath("/prodotti/" & Request.QueryString("nomefile"))
    		Set objFSO = Nothing	
    	End If
    	
    		rs.Close
    		Set rs = Nothing
    		cn.Close
    		Set cn = Nothing
    %>
    Errare è umano, Perseverare è Diabolico.
    sapiente è colui ke sa di non sapere.

  10. #10
    beh, sei pigro io ti avevo detto come fare....

    ' APRO LA CONNESSIONE COL DATABASE
    cn.Open sc
    sql = "DELETE * FROM UpLoad WHERE nome_file = '" & strDEL & "'"
    cn.EXECUTE sql

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.