Como deletar todos registros com Table?
Olá!
Gostaria de saber como deletar todos os registros de uma tabela, de uma só vez, utilizando um Table.
Grato.
wbb
Gostaria de saber como deletar todos os registros de uma tabela, de uma só vez, utilizando um Table.
Grato.
wbb
Wbb
Curtidas 0
Respostas
Maicongabriel
11/03/2004
com table[b:3aa3b0f506]::[/b:3aa3b0f506]
com query[b:3aa3b0f506]::[/b:3aa3b0f506]
:wink:
while not table.eof do table.delete;
com query[b:3aa3b0f506]::[/b:3aa3b0f506]
delete from table
GOSTEI 0
Wbb
11/03/2004
Obrigado maicongabriel, mas isso não apaga todos os itens de uma vez, mas sim um-a-um.
T+
wbb
T+
wbb
GOSTEI 0
Maicongabriel
11/03/2004
Claro! Porque não existe solução para TTable (provavelmente base paradox) que delete todos os registros de um vez!
É bem simples! Essa é a Unica forma :wink:
É bem simples! Essa é a Unica forma :wink:
GOSTEI 0
Wbb
11/03/2004
Com relação ao Table você tem razão mesmo. Na realidade eu escrevi errado. Não é um Table e sim um ADOTable.
Com esse tem jeito?
Grato.
wbb
Com esse tem jeito?
Grato.
wbb
GOSTEI 0
Maicongabriel
11/03/2004
[i:11288c5c68]Tentou...[/i:11288c5c68] :?:
ADOTable.DeleteRecords;
GOSTEI 0
Zumbi
11/03/2004
amigo tente:
table1.deletetable;
table1.deletetable;
GOSTEI 0
Maicongabriel
11/03/2004
:shock: Ele quer deletar todos os [b:d434f19e02]registros[/b:d434f19e02], não a [b:d434f19e02]tabela[/b:d434f19e02] :!:
GOSTEI 0
Aroldo Zanela
11/03/2004
Colega,
Para tabelas desktop como Paradox e dBase use o método EmptyTable. (BDE)
Para tabelas desktop como Paradox e dBase use o método EmptyTable. (BDE)
GOSTEI 0
Wbb
11/03/2004
maicongabriel,
Já cheguei a tentar o que você sugeriu, porém com um parâmetro:
[b:d407828626]ADOTable1.DeleteRecords(arAll);[/b:d407828626]
Testei ADOTable1.DeleteRecords() também e ambos deram erro. Neste último caso o erro foi ´Operation is not allowed in this context´.
A única solução que consegui foi:
[b:d407828626]ADOTable1.Connection.Execute(´Delete * from TABELA´);[/b:d407828626]
Obrigado a todos.
wbb
Já cheguei a tentar o que você sugeriu, porém com um parâmetro:
[b:d407828626]ADOTable1.DeleteRecords(arAll);[/b:d407828626]
Testei ADOTable1.DeleteRecords() também e ambos deram erro. Neste último caso o erro foi ´Operation is not allowed in this context´.
A única solução que consegui foi:
[b:d407828626]ADOTable1.Connection.Execute(´Delete * from TABELA´);[/b:d407828626]
Obrigado a todos.
wbb
GOSTEI 0
Aroldo Zanela
11/03/2004
Colega,
Qual é o SGBDR? No caso do SQL Server da Microsoft você poderia fazer:
Cuidado: Não deixa nada no LOG.
Qual é o SGBDR? No caso do SQL Server da Microsoft você poderia fazer:
ADOTable1.Connection.Execute(´truncate table TABELA´);
Cuidado: Não deixa nada no LOG.
GOSTEI 0
Wbb
11/03/2004
Olá Aroldo!
Estou usando Access. A forma [b:e32e1fd995]ADOTable1.Connection.Execute(´Delete * from TABELA´)[/b:e32e1fd995] funcionou. Só não sei se é a melhor.
Obrigado.
wbb
Estou usando Access. A forma [b:e32e1fd995]ADOTable1.Connection.Execute(´Delete * from TABELA´)[/b:e32e1fd995] funcionou. Só não sei se é a melhor.
Obrigado.
wbb
GOSTEI 0
Aroldo Zanela
11/03/2004
Colega,
Acho que o Access não possui TRUNCATE TABLE, mas você pode simplificar um pouco mais utilizando:
Onde cnn é o nome do objeto de conexão.
Acho que o Access não possui TRUNCATE TABLE, mas você pode simplificar um pouco mais utilizando:
cnn.Execute(´Delete * from TABELA´);
Onde cnn é o nome do objeto de conexão.
GOSTEI 0
Wbb
11/03/2004
Ok. Vou tentar.
Obrigado novamente.
wbb
Obrigado novamente.
wbb
GOSTEI 0
Marcelo
11/03/2004
Tente o seguinte cara:
Valeu?
tb.First; while not tb.Eof do tb.Delete;
Valeu?
GOSTEI 0
Maicongabriel
11/03/2004
HuMmm! Essa resposta já foi dada neste mesmo topico [b:98b37043cf]Marcelo[/b:98b37043cf], olha ali acima! E não era o que o [b:98b37043cf]wbb[/b:98b37043cf] queria!... ah e alem disso, não preciza desse [b:98b37043cf]FIRST[/b:98b37043cf] ai :wink:
GOSTEI 0
Jalt
11/03/2004
Se você quer deletar os registros e marcar cada um deles como desocupado, use o DELETE mas, se o seu negócio é ZERAR uma tabela, mantendo apenas sua extrutura, feche toda e qualquer chamada a essa tabela e faça :
Tabela.Close;
Tabela.Exclusive := True;
Tabela.EmptyTable();
Tabela.Exclusive := False;
Tabela.Open;
Espero ter ajudado
João Alberto Licht Teixeira
http://www.mistisul.com.br
Tabela.Close;
Tabela.Exclusive := True;
Tabela.EmptyTable();
Tabela.Exclusive := False;
Tabela.Open;
Espero ter ajudado
João Alberto Licht Teixeira
http://www.mistisul.com.br
GOSTEI 0