DELETAR TODOS OS REGISTROS EM DAO
Boa noite gente,
Como faço para deletar todos os registros em DAO? Alguém tem um exemplo simples que possa enviar?
Grata
Como faço para deletar todos os registros em DAO? Alguém tem um exemplo simples que possa enviar?
Grata
Faz uma chamada de SQL com o
[Ô]TRUNCATE tabela[Ô]
Isso vai zerar toda a sua tabela
[Ô]TRUNCATE tabela[Ô]
Isso vai zerar toda a sua tabela
Joeyrfs, você tem um exemplo que possa me enviar? Sei fazer isso com LINQ e Entity, mas em VB6 não estou conseguindo e tenho que fazer esse código para limpar os dados de uma tabela temporária em um sistema antigo feito em VB6.
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset([Ô]tabela[Ô], dbOpenDynaset)
Set rs = CurrentDb.OpenRecordset([Ô]TRUNCATE tabela[Ô], dbOpenDynaset)
Set rs = CurrentDb.OpenRecordset([Ô]tabela[Ô], dbOpenDynaset)
Set rs = CurrentDb.OpenRecordset([Ô]TRUNCATE tabela[Ô], dbOpenDynaset)
Assim tambem funciona:
Dim Db As DAO.Database
Db.Execute [Ô]delete * from SuaTabela[Ô]
A opção do truncate é mais rápido, pois se for um banco como SQL Server este não gera log ao contrário do comando delete.
Gente, obrigada pelos códigos, o banco de dados em uso é Access, um dos exemplos de código que está em uso no sistema e no meu ponto de vista não está correto é este:
Dim rs As Recordset
Set rs = dbBaseDados.OpenRecordset([Ô]select * from cliente[Ô])
Do While Not rs.EOF
rs.Delete
rs.MoveNext
Loop
Gostaria que vocês fizessem a análise e me dissessem.
Ah! Outra dúvida aproveitando o código postado pelo Joeyrfs, qual a finalidade do dbOpenDynaset, vejo muito ele nos códigos.
Obrigada mais uma vez a todos vocês!
Dim rs As Recordset
Set rs = dbBaseDados.OpenRecordset([Ô]select * from cliente[Ô])
Do While Not rs.EOF
rs.Delete
rs.MoveNext
Loop
Gostaria que vocês fizessem a análise e me dissessem.
Ah! Outra dúvida aproveitando o código postado pelo Joeyrfs, qual a finalidade do dbOpenDynaset, vejo muito ele nos códigos.
Obrigada mais uma vez a todos vocês!
Da forma como está o seu processo de exclusão, item por item no lado cliente, você terá um trafego maior na rede e um processo demorado (dependo da quantidade de registro). A proposta do colega MARCELOKROL é uma das melhores, pois o processo de exclusão será realizado por um único comando no lado cliente, após este, o próprio Banco, no Lado Servidor fará toda exclusão.
Utilize o TRUNCATE .
Até a onde eu sei o DB do tipo Acess não reconhece o comando TRUNCATE, pois o mesmo não tem nenhum log.
Boa noite amigos!
Realmente o TRUNCATE não funciona, eu usei o código do MARCELOKROL e ficou bem rápido mesmo.
Obrigada a todos vocês pela ajuda!
Realmente o TRUNCATE não funciona, eu usei o código do MARCELOKROL e ficou bem rápido mesmo.
Obrigada a todos vocês pela ajuda!
Tópico encerrado , respostas não são mais permitidas