Fórum Fdmemtable #584954
16/08/2017
0
Boa tarde,
Estou salvando os campos em um arquivo .FSD, para limpar este arquivo estou utlizando o comando :
FdMenProduto.First; // deixo no primeiro item
while not FdMenProduto.Eof do
begin
try
FdMenProduto.Open;
FdMenProduto.Append;
FdMenProduto.BeginBatch;
FdMenProduto.Delete; // deleto o item
FdMenProduto.Next;
finally
FdMenProduto.EndBatch;
end;
end;
No caso este comando demora pra executar se tiver muitos itens, qual a melhor maneira de limpar o fdmenTable ?
Estou salvando os campos em um arquivo .FSD, para limpar este arquivo estou utlizando o comando :
FdMenProduto.First; // deixo no primeiro item
while not FdMenProduto.Eof do
begin
try
FdMenProduto.Open;
FdMenProduto.Append;
FdMenProduto.BeginBatch;
FdMenProduto.Delete; // deleto o item
FdMenProduto.Next;
finally
FdMenProduto.EndBatch;
end;
end;
No caso este comando demora pra executar se tiver muitos itens, qual a melhor maneira de limpar o fdmenTable ?
William Suetake
Curtir tópico
+ 0
Responder
Post mais votado
16/08/2017
Você não precisa da o comando APPEND, precisa?
Fica estranho, excluir um registro e antes aciono o comando para inserir.
O comando OPEN você executa uma única vez antes de iniciar o while
TRY-FINALLY também está errado, quando você o inicia ele não pode ficar iniciando a todo looping do comando, ou você o coloca dentro do while, porém gosto de utilizar de forma que controle em caso de erro, neste caso se alguma exception ocorrer ele finaliza direto, mas fica a seu critéro
Pode utilizar o emptytable
[code]
try
FdMenProduto.Close; //utilizo o fechar para garantir que todos os dados serão excluídos
//FdMenProduto.Open; ///Não lembro se é necessário teste com e sem o Open
FdMenProduto.EmptyTable; //ou o comando que apaga todos os dados
/*
* Para utilizar este comando a tabela em questão, não poderá estar aberta em outra parte da aplicação
*/
finally
end;
Segue o comando, analise e veja o que você entende, qualquer coisa manda pergunta.
Att
Luiz Marcelo
Fica estranho, excluir um registro e antes aciono o comando para inserir.
O comando OPEN você executa uma única vez antes de iniciar o while
TRY-FINALLY também está errado, quando você o inicia ele não pode ficar iniciando a todo looping do comando, ou você o coloca dentro do while, porém gosto de utilizar de forma que controle em caso de erro, neste caso se alguma exception ocorrer ele finaliza direto, mas fica a seu critéro
try
FdMenProduto.Close; //utilizo o fechar para garantir que todos os dados serão excluídos
FdMenProduto.Open;
FdMenProduto.First; // deixo no primeiro item
while not FdMenProduto.Eof do
begin
FdMenProduto.BeginBatch;
FdMenProduto.Delete; // deleto o item
FdMenProduto.Next;
end;
finally
FdMenProduto.EndBatch;
end;
Pode utilizar o emptytable
[code]
try
FdMenProduto.Close; //utilizo o fechar para garantir que todos os dados serão excluídos
//FdMenProduto.Open; ///Não lembro se é necessário teste com e sem o Open
FdMenProduto.EmptyTable; //ou o comando que apaga todos os dados
/*
* Para utilizar este comando a tabela em questão, não poderá estar aberta em outra parte da aplicação
*/
finally
end;
Segue o comando, analise e veja o que você entende, qualquer coisa manda pergunta.
Att
Luiz Marcelo
Luiz Vichiatto
Responder
Gostei + 1
Mais Posts
17/08/2017
William Suetake
Você não precisa da o comando APPEND, precisa?
Fica estranho, excluir um registro e antes aciono o comando para inserir.
O comando OPEN você executa uma única vez antes de iniciar o while
TRY-FINALLY também está errado, quando você o inicia ele não pode ficar iniciando a todo looping do comando, ou você o coloca dentro do while, porém gosto de utilizar de forma que controle em caso de erro, neste caso se alguma exception ocorrer ele finaliza direto, mas fica a seu critéro
Pode utilizar o emptytable
[code]
try
FdMenProduto.Close; //utilizo o fechar para garantir que todos os dados serão excluídos
//FdMenProduto.Open; ///Não lembro se é necessário teste com e sem o Open
FdMenProduto.EmptyTable; //ou o comando que apaga todos os dados
/*
* Para utilizar este comando a tabela em questão, não poderá estar aberta em outra parte da aplicação
*/
finally
end;
Segue o comando, analise e veja o que você entende, qualquer coisa manda pergunta.
Att
Luiz Marcelo
Fica estranho, excluir um registro e antes aciono o comando para inserir.
O comando OPEN você executa uma única vez antes de iniciar o while
TRY-FINALLY também está errado, quando você o inicia ele não pode ficar iniciando a todo looping do comando, ou você o coloca dentro do while, porém gosto de utilizar de forma que controle em caso de erro, neste caso se alguma exception ocorrer ele finaliza direto, mas fica a seu critéro
try
FdMenProduto.Close; //utilizo o fechar para garantir que todos os dados serão excluídos
FdMenProduto.Open;
FdMenProduto.First; // deixo no primeiro item
while not FdMenProduto.Eof do
begin
FdMenProduto.BeginBatch;
FdMenProduto.Delete; // deleto o item
FdMenProduto.Next;
end;
finally
FdMenProduto.EndBatch;
end;
Pode utilizar o emptytable
[code]
try
FdMenProduto.Close; //utilizo o fechar para garantir que todos os dados serão excluídos
//FdMenProduto.Open; ///Não lembro se é necessário teste com e sem o Open
FdMenProduto.EmptyTable; //ou o comando que apaga todos os dados
/*
* Para utilizar este comando a tabela em questão, não poderá estar aberta em outra parte da aplicação
*/
finally
end;
Segue o comando, analise e veja o que você entende, qualquer coisa manda pergunta.
Att
Luiz Marcelo
try
FdMenProduto.Close;
// utilizo o fechar para garantir que todos os dados serão excluídos
FdMenProduto.Open;
FdMenProduto.EmptyDataSet; // ou o comando que apaga todos os dados
finally
##################################################################################
Qual a melhor maneira de recuperar os dados do fdmen ?
estou fazendo assim :
while not FdMenProduto.Eof do
begin
sCodigo := FdMenProdutoCodigo.AsString;
FdMenProduto.Next;
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)