Fórum esvaziar base DBF #176540
21/08/2003
0
Preciso limpar o conteúdo de um arquivo DBF, más como esse arquivo é sempre usado, a coisa está ficando feia. Acontece que no DBF os arquivos são marcados para esclusão <delete> más ficam lá até que você use o comando ´pack´ ou ´zap´.
Vocês conhecem alguma forma de fazer isso via programa? Estou tentando usar ´Tabela.zap´ e ´Tabela.pack´ más o Delphi não reconhece esses comandos. Nem no Help do Delphi encontrei qualquer referência aos comando ZAP e PACK.
Desde já agradeço.
.com
.com
Curtir tópico
+ 0Posts
21/08/2003
Vinicius2k
o método q vc deve usar eh ´tabela.emptytable´
isso vai esvaziar mesmo... não eh como o pack do clipper, q soh remove os marcados com <deleted>...
Gostei + 0
21/08/2003
.com
.com
Gostei + 0
21/08/2003
Aroldo Zanela
Usando o BDE você pode eliminar todos os dados de uma tabela DBF por meio do método EmptyTable (Equivalente ao ZAP no Clipper), sendo necessário que a tabela esteja fechada (Diferente do clipper):
Table1.Close; Table1.EmptyTable; Table1.Open;
Para eliminar fisicamente os registros deletados (marcados), use a função abaixo:
procedure PackTable(TableName: TTable); begin Check(dbiPackTable(TableName.dbHandle,TableName.Handle,nil,szDBASE,true)); end;
Usando:
Table.Close; Table.TableName := ´NomeTabela.DBF´; Table.Open; PackTable(Table);
Lembre-se de incluir BDE na lista de uses.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)