Fórum Empty Table ! Esvaziar tabela #262857

21/12/2004

0

Caros amigos Delphianos ,

Tenho uma tabela chamada Temp.db que esta sendo chamada pelo data module, pelo componente table nominado como tbtemp . Tenho um form para cadastrar dados nesta tabela, só que neste mesmo form eu tenho um botão que serve para apagar TODOS os registros desta mesma tabela . Neste botão eu coloquei o seguinte código :

datamodule.tbtemp.emptytable;

Bom, rodei a aplicação , cadastrei ums 4 clientes , só que quando cliquei neste botão pra dar um Empty Table, ele retornou o seguinte erro :

Table is in busy , algo do tipo.

Já tentei de tudo , e teve uma vez , que eu não sei o que eu fiz , que retornou um outro erro , também não me lembro a mensagem na integra , mas se eu não me enganar parece que era algo com : seilá o que .... table is exclusive , lembro que era alguma coisa com exclusive .

Caros amigos , resumindo , eu estou trabalhando com Paradox 7. e se alguém souber qual o procedimento correto para limpar toda a tabela via programação , eu agradeço muito pela ajuda !



Valeuuu galera !


Boas Festas !

/\ FELIZ NATAL !!! ******************
/ \
/ * \
/ * * \
/ * \
***********
||
||
----------------


Tiagojmilam

Tiagojmilam

Responder

Post mais votado

24/12/2004

procedure TFoVendas.botaodeletarClick(Sender: TObject);
var
//Variavel que receberá aquantidade de registros...
todosResgistro:Integer;
//Variável que receberá zero...
nenhumRegistro:Integer;
begin
//verifica se existe algum registro...
if Dados.Tb_Vendas.RecordCount >= 1 then
begin
nenhumRegistro:= 0;
//recebendo a quantidade de registros...
todosResgistro:= Dados.Tb_Vendas.RecordCount;
if application.MessageBox(´Deseja apagar todos os registros ?´, ´Confirmação´,mb_yesNo + mb_IconQuestion )= idYes then
begin
//executando...
repeat
//deleta um registro
Dados.Tb_Vendas.Delete;
//conta que existe menos um registro...
todosResgistro:= todosResgistro -1;

//verifica se a variávem todos os registros está com zero , caso contrario
///voltará par Repeat e apagará mais um registro até que fique com zero...
until todosResgistro = nenhumRegistro;
end;


end;

end;



Bem Explicado...
Ass: Max...


Max.jgs

Max.jgs
Responder

Gostei + 1

Mais Posts

21/12/2004

Max.jgs

Tentei e tanbem não consegui...
Faça um loop para apagar todos os registros...


Responder

Gostei + 0

21/12/2004

Sremulador

Table is in busy
Provavelmente a tabela esta em uso.


Responder

Gostei + 0

21/12/2004

Tiagojmilam

Olá /


Como se faz um loop ? Sou inicante e não entendo algumas palavras ... se alguém puder me dizer passo-a-passo como resolver meu dilema agradeceria muito mesmo !


Valeu Galera !


Responder

Gostei + 0

21/12/2004

Rômulo Barros

[color=blue:a0035954b0][u:a0035954b0][i:a0035954b0]Veja alguns tópicos já postados aqui no fórum:[/i:a0035954b0][/u:a0035954b0][/color:a0035954b0]

[color=green:a0035954b0][b:a0035954b0]1 - [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=45819&highlight=busy]´Table is in Busy´. Quem está usando?[/url]
2 - [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=45161&highlight=busy]Eliminar fisicamentes registros de tabelas .DBF[/url]
3 - [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=41357&highlight=busy]Mensagem ao abrir Tabela .DBF ...[/url]
4 - [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=36908&highlight=busy]Compactando Tabelas Paradox[/url] (Isso resolverá o seu problema)
5 -[url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=9002&highlight=busy] Paradox em rede[/url]
6 - [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=4979&highlight=busy]Erro: ´Table is in busy´[/url][/b:a0035954b0][/color:a0035954b0]

Espero ter ajudá-lo !!!



Responder

Gostei + 0

21/12/2004

Emersonclubedelphi

acho q isso pode te ajudar.., faça uma tentativa..., acredito que isso esta acontecendo pq, sua tabela esta aberta, tente fecha-la primeiro.

datamodule.tbtemp.close;
datamodule.tbtemp.emptytable;


Responder

Gostei + 0

24/12/2004

Max.jgs

procedure TFoCadCli.BitBtn4Click(Sender: TObject);
var
TotalClientes:integer;
NenhumCliente:integer;
begin
if Dados.Tb_CadCli.RecordCount >= 1 then
begin
NenhumCliente:= 0;

if application.MessageBox(´Tem Certeza ? Isto Apagará todos os registros Clientes ?´, ´Confirmação´,
mb_yesNo + mb_IconQuestion )= idYes then
if Dados.Tb_CadCli.RecordCount >= 1 then
begin

TotalClientes:= Dados.Tb_CadCli.RecordCount;
repeat
Dados.Tb_CadCli.delete;
TotalClientes:= TotalClientes - 1;

until TotalClientes = NenhumCliente;
end;

end;


end;


Responder

Gostei + 1

24/12/2004

Martins

Bom, já tem agum tempo q não uso Paradox, mas quando usava, sempre fazia assim.
      // Verifica se a tabela está ativa (aberta)
      If table1.Active = true then // Se estiver então feche-a
         begin
            Table1.Close;  //Fechando a tabela aqui...
         end;   
      Table1.EmptyTable; //Com a tabela fechada, é só limpar
      Label1.Caption:= ´A sua tabela está limpa agora...´;


Espero q lhe ajude!!

[b:29f3935144]Martins[/b:29f3935144]


Responder

Gostei + 0

24/12/2004

Dbergkamps

tente antes de fechar.
Table01.close;
ou pela instrução sql
delete from Table01
Query1.ExecSql;


espero ter ajudado e feliz natal a todos os membros do fórum clube delphi, que no próximo ano possamos superar os desafios que surgirem em nossos softwares. :D :D :D :D :D :D


Responder

Gostei + 0

24/12/2004

Max.jgs

O Alias tem que estar fechado para que o ´EmptyTable´ funcione....

Ass: Max...


Responder

Gostei + 0

26/12/2004

Zotti

Não precisa mencionar na clausula type, pode colocar essa procedure um pouco acima do evento Click, mencionado abaixo:

Procedure ApagarTodosReg(Origem:TDataSet);
Begin
With Origem do // o nome origem deve ficar como está origem
While Nome da Tabela do // Coloque o nome da table
Delete;
end;

Depois chame em algum evento_ex Click
procedure TBL.Button1Click(Sender: TObject);
begin
ApagarTodosReg(Nome da Tabela);
end;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar