Como deletar registros antigos de um BD?
Olá a todos.Meu problema é bem simples. Eu criei um banco de dados para armazenar mensagens no meu site, e eu gostaria de deixar no banco APENAS as 25 mensagens mais recentes.Para isto eu criei os campos nome, mensagem e data. Além de outros que funcionam como campos para meu controle interno.O banco está funcionando bem, mas eu gostaria de limpar minha base de dados, já que eu não preciso das mensagens mais antigas.Eu fiz isto com um outro banco que criei (de notícias), mas no caso dele era fácil pois eu deletava as notícias que tivessem data maior do que "X" por exemplo.No atual eu fiz da seguinte forma, mas ocorre um erro quando a página é chamada:
<% 'mapeando o arquivo do banco:strPath = Server.MapPath("bdmportal03.mdb") 'query: strSQL = "SELECT FROM tabmens Order by Data Desc;" 'abrindo conexão c/ o Access indicando o nome do meu arq.:Set objConexaoBD = Server.CreateObject("ADODB.Connection")objConexaoBD.ConnectionString = "DRIVER={Microsoft Access Driver (.mdb)};" & "DBQ=" & strPathobjConexaoBD.Open 'abrindo a tabela atravéz da query:Set objTabBD = Server.CreateObject("ADODB.Recordset")objTabBD.Open strSQL, objConexaoBD i = 0 'testando se o registro é antigo (maior que 25):Do While Not objTabBD.EOF i = i + 1 If (i > 25) Then objTabBD.Delete End If objTabBD.MoveNextLoop 'fechando tudo:objTabBD.CloseSet objTabBD = NothingobjConexaoBD.CloseSet objConexaoBD = Nothing%>
O que reparei é que apenas substitui o comando "objTabBD.Open strSQL, objConexaoBD" por este: "objTabBD.Open "tabmens", objConexaoBD, , adLockOptimistic, adCmdTable" e funcionou.O problema é que assim eu não tenho garantia de que vão ficar apenas as mais recentes.O que devo fazer?Agradeço quem puder me ajudar.
Discussão (2)
Carregando comentários...