Como apagar todos os registro de uma tabela de um resp .....

23/12/2005

1

Como apagar todos os registro de uma tabela de um respectivo registro, eu andei fazendo esse código mas não funciona, ele apaga só o registro atual.

if Application.MessageBox(´Deseja realmente apagar este registro´,´Confirmação´,mb_yesno + mb_iconquestion) = id_yes then
Begin
if bancos.IBT_movimento_item.RecordCount=0 then
begin
end else
begin
bancos.IBT_movimento_item.First;
while not bancos.IBT_movimento_item.Eof do begin
bancos.IBT_movimento_item.delete;
bancos.IBT_movimento_item.Next;
// if bancos.IBT_movimento_item.RecordCount<>0 then
end;
end;
bancos.IBT_produtos.Delete;
bancos.IBT_produtos.ApplyUpdates;
bancos.IBT_produtos.Refresh;
bancos.IBT_produtos.Transaction.CommitRetaining;
End else
Begin
showmessage(´Antes de apagar algum registro, verifique1´);
End;
end;


Responder

Posts

23/12/2005

Eixox

Porque não colocar uma SQL pra fazer isso, tipo:

if MessageDlg(´Você realmente deseja excluir esse registro?´, mtWarning, [mbYes, mbNo],0 ) = MrYes then
begin
MinhaSQL.Params(´MeuCodigo´).asInteger := NúmeroDoRegistro
MinhaSQL.Execute;
end;

No código da SQL coloque

Delete from NomeDaTabela Where CODIGO_ABC = :MeuCodigo

Pronto, isso resolverá seu problema.


Responder

23/12/2005

Alexandre_sbo

bancos.IBT_movimento_item.last;
while not bancos.IBT_movimento_item.Bof do
bancos.IBT_movimento_item.delete;


Responder

23/12/2005

Martins

bancos.IBT_movimento_item.last; //Vá para o fim da tabela while not bancos.IBT_movimento_item.Bof do //Enquanto não chegar ao começo bancos.IBT_movimento_item.delete; //Delete os registros


Talvez esteja eu errado, mas da forma como descrita acima, o codigo deletaria todos os registros da tablea não é isso?

Se for para limpar (Deletar todos os registros), vc poderia diminuir esse código colocando apenas:
//Deleta todos os registros da tabela
bancos.IBT_movimento_item.EmptyTable;


Agora caso a exclusão tenha q ser feita segundo um critério pré-estabelecido, como por exemplo excluir todos os registros com data de venvimento = 12/01/2003, aí vc terá que validar isso.

Um código em SQL acho q seria o mais indicado, mas caso vc não use SQL, certifique de condicionar sua instrução para q somente os registros corretos sejam deletados.

bancos.IBT_movimento_item.First;  //Vá para o inicio da tabela
while not bancos.IBT_movimento_item.Eof do //Enquanto não chegar ao fim
if bancos.IBT_movimento_itemCampo.valor = parametro then
   bancos.IBT_movimento_item.delete; //Delete os registros
...


Algo mais ou menos assim, já não uso IbTable faz um bom tempo, se bem q eu acho q mesmo assim vai ficar meio lento dependendo da quantidade de registros da tabela, pq ele varrerá toda a tabela, seria melhor vc usar um filtro para deixar visivel para intrução de exclusão somente os registros necessários, aí vc poderá usar o código passado pelo colega.

Boa sorte!!!


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira