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
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
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
ho inserito questo codice ma non funzionacodice: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 ifperche?
Da errore? Cosa?
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
cosi funzionacodice: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 ifpero mi interessa capire cona vuol dire la
WHERE id NOT IN (" & sql & ")
grazie![]()
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.
grazie per la spiegazione![]()
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
questo è piu leggibilegrazie tante per l' approfondimento