ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

interromper comando timer quando chegar no ultimo registro

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
WEPIRA
Novato
Novato


Registrado: Quarta-Feira, 8 de Dezembro de 2010
Mensagens: 60

MensagemEnviada: Qua Jul 24, 2013 9:21 am    Assunto: interromper comando timer quando chegar no ultimo registro Responder com Citação

Bom dia

Fiz o comando no timer para importar registro de uma tabela para outra, mas quando ele chega no ultimo registro da primeira tabela ele continua repetindo a importação do ultimo registro.

Como faço para parar quando chegar no ultimo registro???
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Netrunner
Aprendiz
Aprendiz


Registrado: Domingo, 7 de Julho de 2013
Mensagens: 236

MensagemEnviada: Qua Jul 24, 2013 9:26 am    Assunto: Responder com Citação

Timer.Enabled := False; na ultima linha
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Caduzera
Profissional
Profissional


Registrado: Terça-Feira, 29 de Julho de 2008
Mensagens: 656

MensagemEnviada: Qua Jul 24, 2013 9:31 am    Assunto: Responder com Citação

Amigo, quando você inicia o procedimento você coloca o Timer como Enabled = False ??
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
WEPIRA
Novato
Novato


Registrado: Quarta-Feira, 8 de Dezembro de 2010
Mensagens: 60

MensagemEnviada: Qua Jul 24, 2013 10:00 am    Assunto: importar registro Responder com Citação

Estou usando o código no timer para importar, so que quando chega no ultimo registro ele não para e continua repetindo o ultimo registro veja o código abaixo

adoquery3.Open;//abrindo tabela de exportação

adoquery3.Insert; // colocndo em modo de inserção tabela expprtaçãoi
adoquery3.FieldByName('descricao').AsString:=adoquery5.fieldbyname('descricao').AsString; //transferindo o nome do dbgrid para outro
adoquery3.FieldByName('quantidade').AsString :=edit7.Text;



adoquery3.Post;
adoquery6.Next;
end;
timer6.Enabled := false;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Caduzera
Profissional
Profissional


Registrado: Terça-Feira, 29 de Julho de 2008
Mensagens: 656

MensagemEnviada: Qua Jul 24, 2013 10:06 am    Assunto: Responder com Citação

O Timer.Enabled := False fica no inicio da rotina.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
mhgsimoes
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 7 de Dezembro de 2007
Mensagens: 142
Localização: Belo Horizonte / MG

MensagemEnviada: Qua Jul 24, 2013 10:15 am    Assunto: Responder com Citação

Amigo, não entendi muito bem pq está utilizando o timer. É só para importar o próximo registro?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
WEPIRA
Novato
Novato


Registrado: Quarta-Feira, 8 de Dezembro de 2010
Mensagens: 60

MensagemEnviada: Qua Jul 24, 2013 10:20 am    Assunto: importar Responder com Citação

não deu certo, ele manda o primeiro e depois para o que pode esta errado??

begin
timer6.Enabled := false;
adoquery3.Open;//abrindo tabela de exportação

adoquery3.Insert; // colocndo em modo de inserção tabela expprtaçãoi
adoquery3.FieldByName('descricao').AsString:=adoquery5.fieldbyname('descricao').AsString; //transferindo o nome do dbgrid para outro
adoquery3.FieldByName('quantidade').AsString :=edit7.Text;



adoquery3.Post;

end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qua Jul 24, 2013 10:39 am    Assunto: Re: importar Responder com Citação

WEPIRA escreveu:
não deu certo, ele manda o primeiro e depois para o que pode esta errado??

begin
timer6.Enabled := false;
adoquery3.Open;//abrindo tabela de exportação

adoquery3.Insert; // colocndo em modo de inserção tabela expprtaçãoi
adoquery3.FieldByName('descricao').AsStriang:=adoquery5.fieldbyname('descricao').AsString; //transferindo o nome do dbgrid para outro
adoquery3.FieldByName('quantidade').AsString :=edit7.Text;

adoquery3.Post;

end;


Bom dia,

Quando li também fiquei com a mesma dúvida do nosso amigo mhgsimoes sobre o uso do Timer nesta rotina de exportação.

Mas analisando seu código, vi que voce precisa colocálo dentro de um
loop para que seja efetuado em todos os registros da tabela e não só no
primeiro.

Exemplo:

Código:

Begin
adoquery3.Open;//abrindo tabela de exportação
adoquery5.Open;//

adoquery5.First;

While not Adoquery5.EOF do
Begin

adoquery3.Insert; // colocndo em modo de inserção tabela expprtaçãoi
adoquery3.FieldByName('descricao').AsStriang:=adoquery5.fieldbyname('descricao').AsString; //transferindo o nome do dbgrid para outro
adoquery3.FieldByName('quantidade').AsString :=edit7.Text;

adoquery3.Post;

Adoquery5.Next;
End;
End;



Espero ter ajudado.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
mhgsimoes
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 7 de Dezembro de 2007
Mensagens: 142
Localização: Belo Horizonte / MG

MensagemEnviada: Qua Jul 24, 2013 10:41 am    Assunto: Responder com Citação

Se entendi bem o que quer, não precisaria nem de timer. Bastaria fazer um "loop".

Código:

DataSetOrigem.Open;

while not DataSetOrigem.Eof do
begin
  DataSetDestino.Insert;
  DataSetDestino.FieldByName('CAMPO1').Value := DataSetOrigem.FieldByName('CAMPO1').Value;
  DataSetDestino.FieldByName('CAMPO2').Value := DataSetOrigem.FieldByName('CAMPO2').Value;
  DataSetDestino.FieldByName('CAMPO3').Value := DataSetOrigem.FieldByName('CAMPO3').Value;
  DataSetDestino.Post;

  DataSetOrigem.Next;
end;


Mas se seu problema for realmente saber que chegou no último registro, pode fazer algo do tipo:

Código:

Timer.Enabled := not DataSetOrigem.Eof;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
mhgsimoes
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 7 de Dezembro de 2007
Mensagens: 142
Localização: Belo Horizonte / MG

MensagemEnviada: Qua Jul 24, 2013 10:43 am    Assunto: Responder com Citação

natanbh1, postamos a mesma solução.. rs
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
WEPIRA
Novato
Novato


Registrado: Quarta-Feira, 8 de Dezembro de 2010
Mensagens: 60

MensagemEnviada: Qua Jul 24, 2013 11:04 am    Assunto: estou quase Responder com Citação

vou explicar melhor para entederem o que quero fazer

tenho uma tabela produto com quantidade saida e descrição e outra tabela que tem quantidade de entrada.

pego da primeira tabela, a descrição e a subitraçao da quantidade que esta na edit e jogo na tabela de importação, importando o primeiro registro depois ele da o next e envia também o próximo registro com a descrição e a subitraçã da edit

um cliente meu a muito tempo ele adiquiriu um programa em VB com banco access e o estoque dele não dar baixa automático envia quantidade entrada em uma tabela e saída em outra,
ele me pediu para tentar fazer um relatório com o saldo de estoque, por isto estou enviado a descrição, quantidade de entrada e saldo da edit para outra tabela para que eu possa faze o relatório.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
WEPIRA
Novato
Novato


Registrado: Quarta-Feira, 8 de Dezembro de 2010
Mensagens: 60

MensagemEnviada: Qua Jul 24, 2013 11:22 am    Assunto: resolvido Responder com Citação

gente obrigado pelo apoio, juntando todas as dicas que me passaram consegui chegar onde queria, muito obrigado..


Valeu.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB