Atualizar TreeView ao fazer qualquer alteração na tabela
Pessoal preencho uma TreeView com dados de uma tabela,teria como ao atualizar a base de dados da tabela a TreeView tambem atualizar,sem precisar dar clear na treeview?
Resumindo se houver qualquer tipo de alteração na tabela o treeview tambem alterasse.
Resumindo se houver qualquer tipo de alteração na tabela o treeview tambem alterasse.
Alan
Curtidas 0
Melhor post
Arthur Heinrich
28/08/2023
O banco de dados não tem como executar código na máquina do cliente. Portanto, o único jeito disso ocorrer é checando periodicamente o banco, em busca de alterações. Porém, ligar um job com periodicidade curta, para ficar constantemente checando o banco, pode comprometer a disponibilidade do banco.
O componente não precisa necessariamente ter todos os itens destruídos para então atualizar a lista. Você pode varrer a lista de itens e ir atualizando, de forma que a atualização na tela seja mais natural e evite o excesso de alocação dinâmica de componentes.
O componente não precisa necessariamente ter todos os itens destruídos para então atualizar a lista. Você pode varrer a lista de itens e ir atualizando, de forma que a atualização na tela seja mais natural e evite o excesso de alocação dinâmica de componentes.
GOSTEI 1
Mais Respostas
Alan
28/08/2023
O banco de dados não tem como executar código na máquina do cliente. Portanto, o único jeito disso ocorrer é checando periodicamente o banco, em busca de alterações. Porém, ligar um job com periodicidade curta, para ficar constantemente checando o banco, pode comprometer a disponibilidade do banco.
O componente não precisa necessariamente ter todos os itens destruídos para então atualizar a lista. Você pode varrer a lista de itens e ir atualizando, de forma que a atualização na tela seja mais natural e evite o excesso de alocação dinâmica de componentes.
O componente não precisa necessariamente ter todos os itens destruídos para então atualizar a lista. Você pode varrer a lista de itens e ir atualizando, de forma que a atualização na tela seja mais natural e evite o excesso de alocação dinâmica de componentes.
Entao Arthur no meu treeView contem dados da tabela,onde tem os grupos e os ips e tem uma child que eu quero q funcione como se fosse um contador,exemplo :
dm.FDGrupos.sql.Clear; dm.FDGrupos.sql.Add('SELECT IP,NOME,NUMERO_GRUPO,ID_GRUPO,STATUS from Grupos where Numero_grupo = "1"'); dm.FDGrupos.Open; if dm.FDGrupos.RecordCount <> 0 then begin Setor1:= treeview.Items.AddChild(Controladora,dm.FDGruposNome.Value); Setor1.ImageIndex := 2; Setor1.SelectedIndex := 2; dm.FDGrupos.Close; dm.FDGrupos.sql.Clear; dm.FDGrupos.sql.Add('SELECT IP,NOME,NUMERO_GRUPO,ID_GRUPO,STATUS from Grupos where Nome = :pNome'); dm.FDGrupos.ParamByName('Pnome').Value := Setor1.Text; dm.FDGrupos.Open; dm.FDGrupos.First; while not dm.FDGrupos.eof do begin Ips1:= treeview.Items.AddChild(Setor1,dm.FDGruposip.value); dm.FDGrupos.Next; Ips1.ImageIndex := 1; Ips1.SelectedIndex := 1; dm.FDquery1.Close; dm.FDquery1.SQL.Clear; dm.FDquery1.sql.Add('SELECT grupos.Id_grupo,Grupos.IP FROM Grupos'); dm.FDquery1.sql.Add('LEFT JOIN ingressos_evento ON grupos.Id_grupo = ingressos_evento.Id_controladora'); dm.FDquery1.sql.Add(' WHERE ingressos_evento.Tipo = "ENTRADA" and grupos.ip = :Pdesc'); dm.FDquery1.ParamByName('Pdesc').Value := ips1.Text; dm.FDquery1.open; dm.FDquery1.FetchAll; treeview.Items.AddChild(ips1,inttostr(dm.FDQuery1.RecordCount )) ; //Aqui eu pucho a quantidade de registro que o id do ip passou .Ai cada vez que esse id do ip acrescenta ele atualizaria tambem na treeview,nao só na parte do contador mais tambem se fizesse um update de trocar os ips de grupo end; end;
Teria um exemplo de como fazer isso?
GOSTEI 0
Emerson Nascimento
28/08/2023
você precisa estudar sobre eventos do banco de dados.
assim você poderá fazer as coisas funcionarem da forma que você precisa: o banco de dados avisar à aplicação sobre mudanças, em vez de você ficar fazendo consultas frequentes para saber se houve alguma alteração no banco (registro/tabela).
veja uma breve explicação aqui:
https://gdksoftware.com/pt-br/base-de-conhecimento/delphi-e-database-events?gclid=CjwKCAjwrranBhAEEiwAzbhNtViQ75Rb3QJLJJymNIOyIrNQZ3ZEisLc04tHH7EzRcvAOxUaGyTcaBoCTNIQAvD_BwE
exemplos da própria embarcadero:
https://docwiki.embarcadero.com/CodeExamples/Sydney/en/FireDAC.TFDEventAlerter_Sample
se você ainda não tiver os fontes exemplo na tua máquina, basta baixar do Github.
assim você poderá fazer as coisas funcionarem da forma que você precisa: o banco de dados avisar à aplicação sobre mudanças, em vez de você ficar fazendo consultas frequentes para saber se houve alguma alteração no banco (registro/tabela).
veja uma breve explicação aqui:
https://gdksoftware.com/pt-br/base-de-conhecimento/delphi-e-database-events?gclid=CjwKCAjwrranBhAEEiwAzbhNtViQ75Rb3QJLJJymNIOyIrNQZ3ZEisLc04tHH7EzRcvAOxUaGyTcaBoCTNIQAvD_BwE
exemplos da própria embarcadero:
https://docwiki.embarcadero.com/CodeExamples/Sydney/en/FireDAC.TFDEventAlerter_Sample
se você ainda não tiver os fontes exemplo na tua máquina, basta baixar do Github.
GOSTEI 1
Alan
28/08/2023
você precisa estudar sobre eventos do banco de dados.
assim você poderá fazer as coisas funcionarem da forma que você precisa: o banco de dados avisar à aplicação sobre mudanças, em vez de você ficar fazendo consultas frequentes para saber se houve alguma alteração no banco (registro/tabela).
veja uma breve explicação aqui:
https://gdksoftware.com/pt-br/base-de-conhecimento/delphi-e-database-events?gclid=CjwKCAjwrranBhAEEiwAzbhNtViQ75Rb3QJLJJymNIOyIrNQZ3ZEisLc04tHH7EzRcvAOxUaGyTcaBoCTNIQAvD_BwE
exemplos da própria embarcadero:
https://docwiki.embarcadero.com/CodeExamples/Sydney/en/FireDAC.TFDEventAlerter_Sample
se você ainda não tiver os fontes exemplo na tua máquina, basta baixar do Github.
Muito obrigado amigo, vou dar uma olhada.
assim você poderá fazer as coisas funcionarem da forma que você precisa: o banco de dados avisar à aplicação sobre mudanças, em vez de você ficar fazendo consultas frequentes para saber se houve alguma alteração no banco (registro/tabela).
veja uma breve explicação aqui:
https://gdksoftware.com/pt-br/base-de-conhecimento/delphi-e-database-events?gclid=CjwKCAjwrranBhAEEiwAzbhNtViQ75Rb3QJLJJymNIOyIrNQZ3ZEisLc04tHH7EzRcvAOxUaGyTcaBoCTNIQAvD_BwE
exemplos da própria embarcadero:
https://docwiki.embarcadero.com/CodeExamples/Sydney/en/FireDAC.TFDEventAlerter_Sample
se você ainda não tiver os fontes exemplo na tua máquina, basta baixar do Github.
GOSTEI 0