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

Discussione: delete record

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395

    delete record

    Ciao a tutti ho un elenco di messaggi in una message board, in ogni rigo(record) alla fine metto un checkbox che mi permettera' una volta selezionati i messaggi e dopo aver clikkato un pulsante di cancellare quei messaggi....
    Il mio problema e' che non riesco a passargli l'id del messaggio da me chiamato IdMessageBoard e cosi' non mi cancella niente....
    Ecco il codice della pagina con l'elenco dei messaggi:

    <form action="DeleteMessage.asp?IdMessageBoard=<% =rs("IdMessageBoard") %>" method="post" name="FormDelete" target="_self" class="style7" id="FormDelete">

    <td width="81" valign="middle" class="style7">Status</td>
    <td width="11"></td>
    <td align="center" valign="middle"><span class="style7">Date</span> <span class="style7">[img]images/ordinamento.gif[/img]</span></td>
    <td></td>
    <td align="left" valign="middle"><span class="style7">To</span></td>
    <td></td>
    <td align="left" valign="middle" class="style8"><span class="style7">Type</span></td>
    <td></td>
    <td align="left" valign="middle"><span class="style7">Title</span></td>
    <td></td>
    <td align="left" valign="middle"><span class="style7">Descrption</span></td>

    <td align="center" valign="middle"><input name="Submit" type="image" src="aspWebCalendar_4_5_2/calendar/skins/default/icon_deleteeventsmall.gif" width="20" height="20" border="0" alt="edit your status" title="delete" ></td>

    <td height="20"><input type="hidden" name="IdMessage " value="<%=rs(0)%>"> </td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%=rs(7)%></span></td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%=rs(2)%></span></td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%'=estrainome(1)%><%=rs(4)%></span></td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%=rs(3)%></span></td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%=rs(5)%></span></td>
    <td></td>
    <td align="left" valign="middle" class="style7"><span class="style7"><%=rs(6)%></span></td>
    <td align="center" valign="middle"><input type="checkbox" name="delete" value="<% =rs(0) %>"></ td>

    Come si puo' vedere dalla form questa pagina richiama la pagina DeleteMessage.asp?IdMessageBoard=<% =rs("IdMessageBoard") %>
    eccola qui sotto:

    <%

    dim Messagereq
    Messagereq = Request.QueryString("IDMessage")
    if Messagereq<>"" then

    'response.Write(Messagereq)
    'response.End()
    ' SI CONNETTE AL DB E PRELEVA IL MESSAGGIO IL CUI ID E’ UGUALE A QUELLO PASSATO TRAMITE LA QUERYSTRING “ID”
    Set rs = Server.CreateObject("ADODB.Recordset")

    sql = "SELECT * FROM MessageBoard WHERE IDMessageBoard = " & Messagereq & " "

    rs.Open sql, conn ,1,3

    'CANCELLA IL RECORDSET (IL MESSAGGIO)
    rs.Delete

    rs.Close
    end if
    %>

    <%

    ' TI PORTA NELLA PAGINA dei Messaggi

    Response.Redirect "MessageBoard6.asp"

    %>

    La variabile Messagereq avrebbe il compito di prendere l'id del messaggio da eliminare.
    Una volta preso lo passo nel sql e tutto dovrebbe andare, giusto?
    Inoltre il mio obiettivo e' quello(visto che uso le checkbox) di eliminare piu' messaggi contemporaneamente, come posso fare?

    Grazie per l'attenzione

  2. #2
    Ciao,

    penso che il tuo problema sia dovuto al tipo di cursore che utilizzi o dai permessi che hai sulla cartella in cui è presente il db.

    Per la cancellazione ti suggerirei di utilizzare una query SQL e non il metodo di Ado.

    Quindi:
    sql = "DELETE FROM MessageBoard WHERE IDMessageBoard = " & Messagereq & " "

    conn.execute sql

    senza l'utilizzo di cursore che non ti servono.

    Per la cancellazione multipla ti conviene associare il valore dell'ID alla combo box e mandare il tutto tramite un form con action impostato a post. Se saranno presenti più valori questi saranno separati da una virgola. Basta che ti crei un array e fai un ciclo for della delete.

    Spero di esserti stato d'aiuto

    francesco

    ==================
    My Site:
    www.keikosan.com
    www.interedil.com
    ------------
    My site:
    www.keikosan.com
    www.interedil.com

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    sorry mi sono accorto di un errore nel file DeleteMessage.asp

    quando richiamo l'id del messaggio faccio cosi':

    Messagereq = Request.form("IDMessage")

    al posto di :

    Messagereq = Request.querystring("IDMessage")

    ok? ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    ciao ti ringrazio pero' sinceramente non sono bravo sugli array. Come faccio a farne uno per la selezione multipla???

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    ho provato come mi hai suggerito con il delete nel sql ed ho fatto cosi':

    <%
    dim id
    id = request.form("IdMessage")

    Set Conn = Server.CreateObject("ADODB.Connection")
    Set Rs = Server.CreateObject("ADODB.Recordset")

    Conn.Open dsn

    SQL = "DELETE FROM MessageBoard WHERE id="&id

    rs.Open SQL, Conn



    'chiusura della connessione
    rs.Close
    set rs = Nothing
    %>
    %>

    <%

    ' TI PORTA NELLA PAGINA dei Messaggi

    Response.Redirect "MessageBoard6.asp"

    %>

    mi da quest'errore:

    Error Type:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][ODBC Microsoft Access Driver] Syntax error (comma) in query expression 'id=2650348, 2650347, 2650345, 2650344, 2650343, 2650342, 2650341, 2650339, 2650335, 2650333, 2650332, 2650331, 2650316, 2650315'.
    /site/DeleteMessage1.asp, line 15

    cioe' mi trova tutti gli id presenti nella pagina....

  6. #6
    Allora ti riscrivo il codice ^_-


    'INIZIO CODICE PER CANCELLAZIONE
    dim id
    dim SQL
    dim Conn

    id = request.form("IdMessage")

    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open dsn

    SQL = "DELETE FROM MessageBoard WHERE id="&id

    Conn.Execute SQL


    'chiusura della connessione
    rs.Close
    set rs = Nothing

    'FINE CODICE DI CANCELLAZIONE

    Fammi sapere se così ti funziona ^_-
    Per l'altro problema appena ho 5 minuti ti posto un pò di codice ^___^

    francesco

    Originariamente inviato da tabarto
    ho provato come mi hai suggerito con il delete nel sql ed ho fatto cosi':

    <%
    dim id
    id = request.form("IdMessage")

    Set Conn = Server.CreateObject("ADODB.Connection")
    Set Rs = Server.CreateObject("ADODB.Recordset")

    Conn.Open dsn

    SQL = "DELETE FROM MessageBoard WHERE id="&id

    rs.Open SQL, Conn



    'chiusura della connessione
    rs.Close
    set rs = Nothing
    %>
    %>

    <%

    ' TI PORTA NELLA PAGINA dei Messaggi

    Response.Redirect "MessageBoard6.asp"

    %>

    mi da quest'errore:

    Error Type:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][ODBC Microsoft Access Driver] Syntax error (comma) in query expression 'id=2650348, 2650347, 2650345, 2650344, 2650343, 2650342, 2650341, 2650339, 2650335, 2650333, 2650332, 2650331, 2650316, 2650315'.
    /site/DeleteMessage1.asp, line 15

    cioe' mi trova tutti gli id presenti nella pagina....
    ------------
    My site:
    www.keikosan.com
    www.interedil.com

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    ciao ti ringrazio allora appena hai un po' di tempo ci conto mi posti il codice dell'array,ok? ciao e grazie

  8. #8
    Ecchime ^_-

    Allora questo è il codice del form con le COMBO BOX:

    INIZIO CODICE:
    ===========================
    <form action='admin_menu.asp?menu=gara&op=c' method="post" name="gara_idelete" lang="it"> <table width="90%" align="center">
    <tr class="sfondo_nero">
    <th>Id Gara</th>
    <th>Ente Gara</th>
    <th>Luogo Gara</th>
    <th>Cancella?</th>
    </tr>
    <%
    For i=1 to RecordPage
    if Not rs.EOF then
    %>
    <tr>
    <td><%=rs("id_gara")%></td>
    <td><%=rs("ente_gara")%></td>
    <td><%=rs("luogo_gara")%></td>
    <td align="center">
    'PASSAGGIO CRUCIALE!!! _ VEDI IL NOME RIMANE SEPMRE LO STESSO ED IL VALORE CAMBIA
    <input name="checkDel" value="<%=rs("id_gara")%>" type="checkbox">
    </td>
    </tr>
    <%
    rs.MoveNext
    end if
    Next
    %>
    </table>
    <input type="submit" value="salva" name="CancelNews">
    </form>
    ==========================

    INIZIO CODICE DELLA PAGINA CHE CANCELLERA'
    Codice:
    ============================================
    dim formId_news
    dim arrId_news
    formId_news = request.form("checkDel")
    arrId_news = Split(formId_news, ",")
    'DbBegin() 'PROCEDURA CON TRANSAZIONE - VERIFICARE
    for iCount = 0 to UBound(arrId_news)
    query="delete from tb_news where id_news = " & arrId_news(iCount)
    statment = DbExe(query)
    if statment = 1 then 'Verifico esto transazione
    'dbCommit()
    %>
    <script language="javascript" type="text/javascript">
    alert("L'operazione di Cancellazione è stata eseguita.");
    </script>
    <%
    else
    'dbRollBack()
    %>
    <script language="javascript" type="text/javascript">
    alert("L'operazione di Cancellazione NON è stata eseguita.");
    </script>
    <%
    end if
    next

    ===========================================
    Scusa per il codice un pò disordinato ma ho fatto un copia e incolla ^_-

    Se hai problemi son qui ^_-

    francesco

    Originariamente inviato da tabarto
    ciao ti ringrazio allora appena hai un po' di tempo ci conto mi posti il codice dell'array,ok? ciao e grazie
    ------------
    My site:
    www.keikosan.com
    www.interedil.com

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    Ciao Francesco,
    grazie per i suggerimenti....
    ho provato ecco il codice:

    apre la connessione al db
    tiene la sessione corrente

    <%
    'INIZIO CODICE PER CANCELLAZIONE
    dim id
    dim SQL
    dim cancella

    id = request.form("checkDel")
    cancella = Split(id, ",")
    'id = Split(id, ",")
    for iCount = 0 to UBound(cancella)
    'for iCount = 0 to UBound(id)
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open dsn

    SQL = "DELETE FROM MessageBoard WHERE IdMessageBoard="& cancella(iCount)
    'response.Write(id)
    'response.end
    statment = DbExe(SQL)
    if statment = 1 then

    %>
    <script language="javascript" type="text/javascript">
    alert("L'operazione di Cancellazione è stata eseguita.");
    </script>
    <%
    else
    'dbRollBack()
    %>
    <script language="javascript" type="text/javascript">
    alert("L'operazione di Cancellazione NON è stata eseguita.");
    </script>
    <%
    end if
    next
    %>
    chiude la connessione al db

    Ecco l'errore che mi viene dato:

    Error Type:
    Microsoft VBScript runtime (0x800A000D)
    Type mismatch: 'DbExe'
    /site/DeleteMessage1.asp, line 21

    Ho provato a fargli stampare gli id selezionati dalla checkbox dopo l'Sql e tutto ok, funge mi si blocca alla riga dove c'e' DBExe, che non so cosa sia....
    Grazie in anticipo per la tua risposta, ciao

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    come non detto ho risolto in altro modo ecco il codice del file delete....

    <%
    Dim Con, rs, sDelete
    Set Con = Server.CreateObject ("ADODB.Connection")
    con.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & server.MapPath("mdb/database.mdb")

    sDelete = Request("checkDel")

    'Response.Write sDelete
    'Response.End

    set rs = Server.CreateObject("ADODB.Command")
    rs.ActiveConnection = con
    rs.CommandText = "DELETE FROM MessageBoard WHERE IdMessageBoard IN (" & sDelete & ")"
    rs.CommandType = 1
    rs.CommandTimeout = 0
    rs.Prepared = true
    rs.Execute()
    Response.Redirect("SendMessage.asp")
    %>

    Grazie uguale Francesco cmq se mi dici la soluzione del metodo che usavi te mi farebbe piacere cosi' ne imparo un altra...
    ciao

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 © 2026 vBulletin Solutions, Inc. All rights reserved.