Fórum Atualizar os registros do banco de dados #272871
17/03/2005
0
Obrigado a todos que puderem me ajudar.
Bjs.
Anjinho Loiro
Curtir tópico
+ 0Posts
17/03/2005
Ehvasc
No OnCreate do form vc coloca uma Query que execute o seguinte comando:
UPDATE TABELA SET SITUACAO = ´Em Atraso´ WHERE VENCIMENTO < HOJE AND NÃO ESTIVEREM PAGOS (AQUI VC DEVE COLOCAR A VALIDAÇÃO QUE VC EXECUTA PRA SABER SE O DÉBITO ESTÁ PAGO)
Espero ter ajudado. Qualquer dúvida manda um email. Boa Sorte e até a próxima
Gostei + 0
17/03/2005
Anjinho Loiro
Toda vez que entra o formulário trava e os botões do DBNavigato ficam piscando sem parar e aí, só CTRL+ALT+DELETE.
O resumo do que quero é isso, a data venceu, o campo situação assume o valor ´Está em atraso´.
Será que vc pode me dar um exemplo mais detalhado. Desculpe-me por bancar a chata.
Bjs.
Gostei + 0
18/03/2005
Gordonsp
Voce poderia criar uma procedure e deixar criar um JOB que a cada 6 horas ele verifique e atualize o status para vc., sendo assim nao precisaria fazer isso com nenhum codigo dentro de seu sistema, ou entao, pode executar essa procedure assim que abrir o sistema.
Qualquer duvida estarei a disposiçao.
Gostei + 0
18/03/2005
Anjinho Loiro
Prefiro a sua segunda sugestão. Se vc puder me dar uma dica de como fazer, eu agradeço.
Bjs.
Gostei + 0
18/03/2005
Marcio.theis
Gostei + 0
18/03/2005
Gordonsp
Hoje tudo o que desenvolvo e que tenha regras e recurso de banco, faço tudo no banco, por exemplo, insert, updates e relatorios, fica facil de dar manutençao, pois se voce nao alterar a regra do negocio, as alteracoes ficam mais facil.
Gostei + 0
18/03/2005
Marcio.theis
Gostei + 0
18/03/2005
Gordonsp
Os bancos que utilizo hoje sao: Mysql, Postgre, Oracle e SQL-Server, eu tenho desenvolvido padroes para todos esses bancos.
Valeu pela troca de informaçoes.
Gostei + 0
18/03/2005
Gordonsp
Na minha opiniao, voce deveria pensar na possibilidade de futuramente migrar para um banco melhor(mais recursos).
Quero ver se ainda hoje vejo isso para vc.
Um grande abraço
Gostei + 0
18/03/2005
Andremuller
Como funciona esse seu form?
Normalmente o que acontece: seleciona-se um cliente e aparecem seus pagamentos. Faça então a atualização do status desses pagamentos preferencialmente sem utilizar query porque são muito muito lerdas qdo utiliza-se paradox com BDE.
Caso seja necessária uma atualização em massa, avalie pela quatindade de registros a possiblidade de utiliazar a query já enviada para esse tópico.
Caso a tabela seja muito grande, crie um rotina com while que certamente será mais rápida no caso de Paradox/BDE.
Gostei + 0
18/03/2005
Anjinho Loiro
Bjs.
Obs>:
O form é assim
Venct. Cliente Valor Situação
20/03/05 NYVEA BEATRIZ R$ 25,00 Em dias
15/03/05 GUILHERME MOREIRA R$ 35,00 Em atraso
A situação é o que eu quero que mude automaticamente.
Gostei + 0
18/03/2005
Andremuller
Calcula na hora porque ele vai estar todo dia desatualizado.
Crie um campo calculado como um colega já sugeriu e verifique se está atrazado.
Gostei + 0
18/03/2005
Joaoshi
Talvez o mais correto seria criar um campo calculado (como dito antes), já que esta informação mudaria a cada dia.
Adicionar os fields na TTable.
Criar o campo calculado
No onCalcfieds da Tabela:
if Data.Tabela >= Date then
Situacao.Text := ´Em Dias´
else
Situacao.Text := ´Em Atraso´;
Espero ter ajudado.
Gostei + 0
31/03/2005
Anjinho Loiro
Gostei + 0
31/03/2005
Pro-luck
dm_.QrySuaQuery.First;
While not dm_.QrySuaQuery.EOF do
begin
if dm_.QrySuaQueryVencimento.Value < StrToDateTime(DateToStr(Now)) then
begin
dm_.QrySuaQuery.Edit;
dm_.QrySuaQuerySituacao.Text := ´Pendências´;
dm_.QrySuaQuery.Post;
dm_.QrySuaQuery.Next;
end
else
begin
dm_.QrySuaQuery.Edit;
dm_.QrySuaQuerySituacao.Text := ´Atualizado´;
dm_.QrySuaQuery.Post;
dm_.QrySuaQuery.Next;
end;
end;
Assim, no ínicio do expediente da empresa, clica-se uma vez sobre o botão ele faz a atualização que servirá até o dia seguinte...
Espero que te sirva e qualquer coisa manda um e-mail...
Beijos...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)