|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
alexbandeira Mestre
Registrado: Terça-Feira, 27 de Julho de 2004 Mensagens: 812 Localização: Paulista - PE
|
Enviada: Qui Jul 07, 2022 5:09 pm Assunto: Os dados não atualizam sem antes reiniciar o sistema |
|
|
Oi pessoal, estou usando Delphi7, FireBird, QReport.
No Delphi7:
Mestre: SQLDataSet, ClintDataSet
Detalhe: SQLQuery, ClintDataSet
É um sistema Mestre Detalhe.
Ao se fazer a venda uso a tabela “tblVendas”, mas, para mostrar no Relatório como detalhe tenho a “tblVendasDetalhe”, mas ambas são alimentadas pela mesma estrutura de dados do FireBird “VENDAS” (tabela no DB).
Citação: | SELECT CODI,
NOME,
ENDERECO,
NÚMERO
FROM VENDAS |
Após a venda tudo fica atualizado Qt. Estoque, Caixa, etc.
Mas na hora de mostrar o Relatório as informações alteradas na “tblVendas” não estão atualizadas na “tblVendasDetalhe”.
Eu faço o filtro por data e ativo a “tblVendasDetalhe“ antes de chamar o Relatório. Então deveria se atualizar (creio que o COMMIT já está sendo feito ao ativar a tabela).
É como se as informações não estivessem gravadas no FireBird, mas na verdade já estão.
Quando se fecha o sistema e o abre novamente as informações aparecem atualizadas.
Ou seja, as informações no Relatório só aparecem atualizadas quando se fecha e abre o sistema depois de alguma alteração.
Alguém tem uma solução para que o Relatório se atualize sem precisar fechar e abrir o sistema?
Já tentei:
Refresh na tbl detalhe. Mas não aceita, gera erro. Ela é ativada ao ativar a tbl Mestre.
Desativar e ativar a tbl Mestre. Mas não atualiza.
Desativar e ativar e SQLDataSet Mestre. Nada acontece.
Desativar e ativar todas as tabela. Nada acontece.
Agradeço antecipadamente. _________________ Conhecemos um grande homem pelas pequenas atitudes. |
|
Voltar ao Topo |
|
|
anderbelluno Colaborador
Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1030 Localização: Cianorte-PR
|
Enviada: Sáb Jul 09, 2022 4:21 pm Assunto: |
|
|
Se não me engano vc precisa fazer um commitupdates ou applyupdates, após dar o post.
Não sei bem ao certo pq não uso esses componentes, mas praticamente é como vc informar ao seu CDS que gravar os dados no banco. |
|
Voltar ao Topo |
|
|
alexbandeira Mestre
Registrado: Terça-Feira, 27 de Julho de 2004 Mensagens: 812 Localização: Paulista - PE
|
Enviada: Seg Jul 11, 2022 10:12 am Assunto: |
|
|
Isso, no meu caso, como uso um TClientDataSet é ApplyUpdates.
Já se faz.
O problema não é gravar na tabela. O problema é o filtro Mestre Deralhe.
O filtro só funciona se fechar e abrir o sistema.
Está tudo certo, só que tem alguma brecha no Delphi 7 que quando se faz o filtro em um sistema Mestre X Detalhe, não reconhece as atualizações sem antes fechar e reabrir o sistema.
Alguém já passou por isso, alguém tem alguma sugestão para se resolver, ou seja, que a tabela detalhe reconheça as atualizações sem ter que fechar e reabrir o sistema?
Lembrando: Estou fazendo o filtro antes de chamar o QReport.
Citação: | SQLVendasSQL.Add(‘SELECT ... |
_________________ Conhecemos um grande homem pelas pequenas atitudes. |
|
Voltar ao Topo |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Ter Jul 26, 2022 11:40 am Assunto: |
|
|
alexbandeira escreveu: | Isso, no meu caso, como uso um TClientDataSet é ApplyUpdates.
Já se faz.
O problema não é gravar na tabela. O problema é o filtro Mestre Deralhe.
O filtro só funciona se fechar e abrir o sistema.
Está tudo certo, só que tem alguma brecha no Delphi 7 que quando se faz o filtro em um sistema Mestre X Detalhe, não reconhece as atualizações sem antes fechar e reabrir o sistema.
Alguém já passou por isso, alguém tem alguma sugestão para se resolver, ou seja, que a tabela detalhe reconheça as atualizações sem ter que fechar e reabrir o sistema?
Lembrando: Estou fazendo o filtro antes de chamar o QReport.
Citação: | SQLVendasSQL.Add(‘SELECT ... |
|
Bom dia,
Ja tentou executar um reflesh no seu cds?
Ou um cds.close; cds.open; pra ver se ele se atualiza depois de gravar?
Ou se nã der depois de gravar fazer um select no dataset? _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
Voltar ao Topo |
|
|
strak2012 Colaborador
Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Dom Ago 07, 2022 6:01 pm Assunto: |
|
|
adriano_servitec escreveu: | alexbandeira escreveu: | Isso, no meu caso, como uso um TClientDataSet é ApplyUpdates.
Já se faz.
O problema não é gravar na tabela. O problema é o filtro Mestre Deralhe.
O filtro só funciona se fechar e abrir o sistema.
Está tudo certo, só que tem alguma brecha no Delphi 7 que quando se faz o filtro em um sistema Mestre X Detalhe, não reconhece as atualizações sem antes fechar e reabrir o sistema.
Alguém já passou por isso, alguém tem alguma sugestão para se resolver, ou seja, que a tabela detalhe reconheça as atualizações sem ter que fechar e reabrir o sistema?
Lembrando: Estou fazendo o filtro antes de chamar o QReport.
Citação: | SQLVendasSQL.Add(‘SELECT ... |
|
Bom dia,
Ja tentou executar um reflesh no seu cds?
Ou um cds.close; cds.open; pra ver se ele se atualiza depois de gravar?
Ou se nã der depois de gravar fazer um select no dataset? |
é como o amigo falou, a solução para tua situação passa por isso mesmo. _________________ Tudo podemos quando tudo sabemos! |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|