Como apagar todos os registro de uma tabela de um resp .....
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;
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;
Chip_set
Curtidas 0
Respostas
Eixox
23/12/2005
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.
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.
GOSTEI 0
Alexandre_sbo
23/12/2005
bancos.IBT_movimento_item.last;
while not bancos.IBT_movimento_item.Bof do
bancos.IBT_movimento_item.delete;
while not bancos.IBT_movimento_item.Bof do
bancos.IBT_movimento_item.delete;
GOSTEI 0
Martins
23/12/2005
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!!!
GOSTEI 0