Visualizzazione dei risultati da 1 a 9 su 9

Discussione: eliminare dei record

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    2,008

    eliminare dei record

    Salve, sto adatando una chat in asp con db access e vorrei che dentro il db ci stiano n record . Esiste un' istruzione precisa in modo che io possa eliminare automaticamente i recore in eccedenza? natoralmente partendo dai piu vecchi

  2. #2
    Hai un campo id (contatore) per ogni messaggio?
    Ad ogni caricamento fai:
    codice:
    max = 10 ' quanti record lasciare nel db
    sql = "SELECT TOP max campoID FROM tabella1 ORDER BY campoID ASC"
    set rs = server.createObject(ADODB.Recordset")
    rs.open sql, conn, 3, 1
    if not rs.eof then
      if rs.recordCount > max then
        conn.execute("DELETE * FROM tabella1 WHERE campoID NOT IN (" & sql & ")")
      end if
    end if

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    2,008
    codice:
    max = 5
    sql = "SELECT TOP "&max&" id FROM chat_pubblica ORDER BY id desc"
    set rs = server.createObject("ADODB.Recordset")
    rs.open sql, conn, 3, 1
    if not rs.eof then
      if rs.recordCount > max then
        conn.execute("DELETE * FROM chat_pubblica WHERE id NOT IN (" & sql & ")")
      end if
    end if
    ho inserito questo codice ma non funziona perche?

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    2,008
    codice:
    max = 20
    sql = "SELECT TOP "&max&" id FROM chat_pubblica ORDER BY id desc"
    set rs = server.createObject("ADODB.Recordset")
    rs.open sql, conn, 3, 1
    if not rs.eof then
      if rs.recordCount = max then
      'response.write("elimino i dati accedenti")
        conn.execute("DELETE * FROM chat_pubblica WHERE id NOT IN (" & sql & ")")
      end if
    end if
    cosi funziona pero mi interessa capire cona vuol dire la

    WHERE id NOT IN (" & sql & ")

    grazie

  6. #6
    La prima sql restituisce l'elenco degli id divisi da virgola.
    NOT IN vuol dire quelli il cui valore ID non è compreso nell'elenco id divisi da virgola estratti dalla prima query.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    2,008
    grazie per la spiegazione

  8. #8
    codice:
    max = 20
    sql = "SELECT COUNT([ID]) AS totID FROM chat_pubblica"
    set rs = conn.execute(sql)
    if rs("totID") > max then
        conn.execute("DELETE * FROM chat_pubblica WHERE id NOT IN (SELECT TOP " & max & " [ID] FROM chat_pubblica ORDER BY [ID] DESC)")
    end if
    rs.close
    set rs = nothing

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    2,008
    questo è piu leggibile grazie tante per l' approfondimento

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.