Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Come posso eliminare il primo record da un mdb ?

    ehm, sapete dirmi come posso eliminare il primo record di una tabella di un database mdb?

    sql = "DELETE FROM lastfiverecords WHERE ????"
    Where there is a will, there is a way

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Primo inserito?
    Se non conosci l'identificativo del record devi prima recuperarlo.

    codice:
    SELECT TOP 1 id FROM tabella ORDER BY id DESC
    E poi effettui la cancellazione:

    codice:
    DELETE FROM tabella WHERE id = "& id
    (quello recuperato)


    Roby

  3. #3
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    delete * from tabella where id in (SELECT TOP 1 ID from Tabella order by ID ASC)
    Tutti vogliono parlare, nessuno sa ascoltare.

  4. #4
    si puo' fare tutto in un colpo solo, ma - come dice robbbby - devi decidere *quale* è il primo record

  5. #5
    Mmm.. così non mi funziona:




    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("lastfive.mdb")& ";"
    Conn.Open

    SELECT TOP 1 id FROM lastfiverecords ORDER BY id DESC
    sql = "DELETE FROM lastfiverecords WHERE id = "& id

    response.write(sql)
    Conn.Execute (sql)

    Conn.Close
    Set Conn = Nothing


    Where there is a will, there is a way

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Originariamente inviato da szannotti
    Mmm.. così non mi funziona:




    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("lastfive.mdb")& ";"
    Conn.Open

    SELECT TOP 1 id FROM lastfiverecords ORDER BY id DESC
    sql = "DELETE FROM lastfiverecords WHERE id = "& id

    response.write(sql)
    Conn.Execute (sql)

    Conn.Close
    Set Conn = Nothing


    Beh ovvio!
    Fai come suggerito da Gioba così eviti il doppio recordset:

    codice:
    sql = "delete * from tabella where id in (SELECT TOP 1 ID from Tabella order by ID ASC)"
    Conn.Execute (sql)
    Roby

  7. #7
    Ok, ho cambiato il codice:


    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("lastfive.mdb")& ";"
    Conn.Open

    sql = "delete * from lastfiverecords where id in (SELECT TOP 1 ID from lastfiverecords order by ID ASC)"
    Conn.Execute (sql)

    Conn.Execute (sql)
    Conn.Close
    Set Conn = Nothing



    Adesso funziona, ma mi elimina entrambi i due records che ho nel database, lasciandolo vuoto...
    Where there is a will, there is a way

  8. #8
    argh... doppio execute, scusate ora è ok
    Where there is a will, there is a way

  9. #9
    adesso però, vorrei fare in modo che venisse eliminato il primo record SOLO se il numero dei records è uguale a 5. Cioè, prima dell'eliminazione dovrebbe essere fatto un controllo sul numero totale di records nel database. Esiste un comando per fare questo controllo??


    [ Stò gestendo un database contenente le "ultime 5 news": in pratica fino a quando il numero dei record è < 5 continuo ad aggiungerne (alla fine del database) fino ad arrivare a 5, ma quando il numero dei record è = 5 allora elimino il primo record prima di aggiungerne un altro alla fine ]
    Where there is a will, there is a way

  10. #10
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    cambia logica: se devi avere solo 5 record, elimina tutti gli altri, a partire dal meno vecchio

    sql = delete * from tabella where id not in (select top 5 id from tabella order by ID DESC)

    occhio che ora ho invertito l'ordinamento della subquery
    ragionaci un po' su e casomai modifica in base a quello che serve a te
    Tutti vogliono parlare, nessuno sa ascoltare.

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.