| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
WEPIRA Novato

Registrado: Quarta-Feira, 8 de Dezembro de 2010 Mensagens: 60
|
Enviada: Qua Jul 24, 2013 9:21 am Assunto: interromper comando timer quando chegar no ultimo registro |
|
|
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 |
|
 |
Netrunner Aprendiz

Registrado: Domingo, 7 de Julho de 2013 Mensagens: 236
|
Enviada: Qua Jul 24, 2013 9:26 am Assunto: |
|
|
| Timer.Enabled := False; na ultima linha |
|
| Voltar ao Topo |
|
 |
Caduzera Profissional

Registrado: Terça-Feira, 29 de Julho de 2008 Mensagens: 656
|
Enviada: Qua Jul 24, 2013 9:31 am Assunto: |
|
|
| Amigo, quando você inicia o procedimento você coloca o Timer como Enabled = False ?? |
|
| Voltar ao Topo |
|
 |
WEPIRA Novato

Registrado: Quarta-Feira, 8 de Dezembro de 2010 Mensagens: 60
|
Enviada: Qua Jul 24, 2013 10:00 am Assunto: importar registro |
|
|
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 |
|
 |
Caduzera Profissional

Registrado: Terça-Feira, 29 de Julho de 2008 Mensagens: 656
|
Enviada: Qua Jul 24, 2013 10:06 am Assunto: |
|
|
| O Timer.Enabled := False fica no inicio da rotina. |
|
| Voltar ao Topo |
|
 |
mhgsimoes Aprendiz


Registrado: Sexta-Feira, 7 de Dezembro de 2007 Mensagens: 142 Localização: Belo Horizonte / MG
|
Enviada: Qua Jul 24, 2013 10:15 am Assunto: |
|
|
| Amigo, não entendi muito bem pq está utilizando o timer. É só para importar o próximo registro? |
|
| Voltar ao Topo |
|
 |
WEPIRA Novato

Registrado: Quarta-Feira, 8 de Dezembro de 2010 Mensagens: 60
|
Enviada: Qua Jul 24, 2013 10:20 am Assunto: importar |
|
|
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 |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Jul 24, 2013 10:39 am Assunto: Re: importar |
|
|
| 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 |
|
 |
mhgsimoes Aprendiz


Registrado: Sexta-Feira, 7 de Dezembro de 2007 Mensagens: 142 Localização: Belo Horizonte / MG
|
Enviada: Qua Jul 24, 2013 10:41 am Assunto: |
|
|
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 |
|
 |
mhgsimoes Aprendiz


Registrado: Sexta-Feira, 7 de Dezembro de 2007 Mensagens: 142 Localização: Belo Horizonte / MG
|
Enviada: Qua Jul 24, 2013 10:43 am Assunto: |
|
|
| natanbh1, postamos a mesma solução.. rs |
|
| Voltar ao Topo |
|
 |
WEPIRA Novato

Registrado: Quarta-Feira, 8 de Dezembro de 2010 Mensagens: 60
|
Enviada: Qua Jul 24, 2013 11:04 am Assunto: estou quase |
|
|
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 |
|
 |
WEPIRA Novato

Registrado: Quarta-Feira, 8 de Dezembro de 2010 Mensagens: 60
|
Enviada: Qua Jul 24, 2013 11:22 am Assunto: resolvido |
|
|
gente obrigado pelo apoio, juntando todas as dicas que me passaram consegui chegar onde queria, muito obrigado..
Valeu. |
|
| Voltar ao Topo |
|
 |
|