Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: cancella record db

  1. #1
    Utente di HTML.it L'avatar di diablobox
    Registrato dal
    Feb 2001
    residenza
    Pisa
    Messaggi
    1,154

    cancella record db

    qualcuno sa dirmi se c e qualcosa di sbagliato utilizzando questo script per cancellare un record da un db


    <%Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn & " DBQ=" & Server.MapPath("/fpdb/consorzio.mdb")
    Conn.Open strConn
    sql = "DELETE * FROM immagini WHERE IDimg=" & IDimmagine
    Set rsupdate = Server.CreateObject("ADODB.Recordset")
    rsupdate.Open sql, conn ,3,3
    %>
    <%
    rsupdate.Close()
    set rsupdate = Nothing

    conn.Close
    set conn = Nothing
    %>

  2. #2
    Utente di HTML.it L'avatar di tekanet
    Registrato dal
    Oct 2001
    Messaggi
    300
    Generalmente le non-query, le query che non ritornano un recordset, le eseguo con Connection.Execute(SQL).

    In ogni caso, se non è questo il tuo problema, posta il codice intero che non si capisce da dove prendi l'ID immagine e se ti da errore, dicci dove e possibilmente le specifiche.

    tK

  3. #3
    Utente di HTML.it L'avatar di diablobox
    Registrato dal
    Feb 2001
    residenza
    Pisa
    Messaggi
    1,154

    cancella record

    in effetti non è che ci sia un errore ben preciso.

    in pratica mi cancella il record.

    Pero alla fine ho inserito un
    <%
    response.Redirect("modifica_immagini.asp?IDcon=" & consorziato &"")
    %>

    che non esegue, mentre invece mi visualizza una pagina una pagina che dice che c e un errore.

    dopo la cancellazione del record, non c'e altro se non il response.redirect

  4. #4
    Utente di HTML.it L'avatar di tekanet
    Registrato dal
    Oct 2001
    Messaggi
    300
    Vedi il cilindro e il coniglio LOL?

    Dai, posta il codice intero, così non si capisce...

    tK

  5. #5
    Utente di HTML.it L'avatar di diablobox
    Registrato dal
    Feb 2001
    residenza
    Pisa
    Messaggi
    1,154

    canella record

    Eccovi serviti...

    <%@LANGUAGE="VBSCRIPT"%>

    <%
    Dim rsimm__MMColParam
    rsimm__MMColParam = "1"
    If (Request.QueryString("IDimg") <> "") Then
    rsimm__MMColParam = Request.QueryString("IDimg")
    End If
    %>
    <%
    Dim rsimm
    Dim rsimm_numRows

    Set rsimm = Server.CreateObject("ADODB.Recordset")
    rsimm.ActiveConnection = MM_conn_cons_STRING
    rsimm.Source = "SELECT * FROM immagini WHERE IDimg = " + Replace(rsimm__MMColParam, "'", "''") + ""
    rsimm.CursorType = 0
    rsimm.CursorLocation = 3
    rsimm.LockType = 3
    rsimm.Open()

    rsimm_numRows = 0
    %>
    <% IDimmagine = (rsimm.Fields.Item("IDimg").Value)
    consorziato = (rsimm.Fields.Item("IDcon").Value)
    %>
    <%
    rsimm.Close()
    Set rsimm = Nothing
    %>
    <%Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn & " DBQ=" & Server.MapPath("/fpdb/consorzio.mdb")
    Conn.Open strConn
    sql = "DELETE * FROM immagini WHERE IDimg=" & IDimmagine
    Set rsupdate = Server.CreateObject("ADODB.Recordset")
    rsupdate.Open sql, conn ,3,3
    %>
    <%
    rsupdate.Close()
    set rsupdate = Nothing

    Conn.Close
    set Conn = Nothing
    %>
    <%
    response.Redirect("modifica_immagini.asp?IDcon=" & consorziato &"")
    %>

  6. #6
    Utente di HTML.it L'avatar di tekanet
    Registrato dal
    Oct 2001
    Messaggi
    300
    Much better

    Hai attiva (usi IE?) la funzione che ti mostra i messaggi di errore estesi? E' sotto strumenti-avanzate-mostra messaggi di errore brevi. Se è flaggata, togli la flag che dovrebbe darti maggiori specifiche sull'errore.

    Poi, per debuggare puoi mettere dei response.flush, così invia la pagina al browser ogni tanto e vedi man mano dove il codice viene eseguito e dove no. In questo caso devi disabilitare (commenta) response.redirect (altrimenti ti da l'errore: le intestazioni HTTP sono già state inviate al browser), semmai sostituiscila con una response.write della stessa stringa.

    Infine, ispeziona che "consorziato", l'ID, venga riempito correttamente.

    HTH, tK

  7. #7
    Utente di HTML.it L'avatar di diablobox
    Registrato dal
    Feb 2001
    residenza
    Pisa
    Messaggi
    1,154

    cancella record

    mi da questo errore:

    ADODB.Recordset error '800a0e78'

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

    /Site-admin/consorziati/cancella_immagine.asp, line 40


    la linea 40 e questa:
    rsupdate.Close()

  8. #8
    Utente di HTML.it L'avatar di tekanet
    Registrato dal
    Oct 2001
    Messaggi
    300
    Ta-dah.. con la delete non esegui un'apertura (ti dicevo di usare connection.execute) perciò non hai nulla da chiudere. Va da se che la soluzione è cancellare la close del recordset.

    tK

  9. #9
    Utente di HTML.it L'avatar di diablobox
    Registrato dal
    Feb 2001
    residenza
    Pisa
    Messaggi
    1,154

    cancella record

    in effetti funziona...
    ma non da problemi poi la mancata chiusura del recorset e connessione??

  10. #10
    Utente di HTML.it L'avatar di tekanet
    Registrato dal
    Oct 2001
    Messaggi
    300
    Allora, come ti dicevo tu non esegui un'apertura, perche una delete, una insert o una update non ritornano un set di righe (recordset). Quindi, non apri nulla. Esegui una così chiamata non-query.

    Per questo motivo l'approcio "rs.Open" in questo caso è sbagliato, benchè funzioni. Perchè non apri, esegui. Quindi, io toglierei del tutto l'oggetto recordset (risparmi risorse) ed eseguirei la cn.Execute(SQL). Controlla la documentazione MSDN per alte specifiche.

    Ovviamente, rimuovi solo il rs.Close, non il cn.Close. La connessione è sì aperta e va debitamente chiusa.

    In linea generale, per ispezionare se un oggetto di questo tipo è chiuso (rs, cn) puoi usare un If cn.State o If rs.State = adStateOpen...

    HTH, tK

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.