O DBGrid não atualiza

Delphi

31/08/2019

Boa Noite,
Tenho a seguinte situação:
-Uma tabela AdoQuery que recebe o seguinte select: Setect * from funcionarios where codfun=:Parcdfunc
- A esta query esta ligado um datasource.
- tenho um formulário onde esta uma DBGRID ligada ao datasorce da tabela a cima.

A Situação é a seguinte: Quando eu passo o parametro pra tabela. Exemplo Tabela.Close;
Tabela.parameter.parambyname('Parcdfunc').value:=100
Tabela.Open;
Quando eu faço isto funciona beleza, a dbgrid traz certinho os dados da query, porem se eu executar o processo novamente e informar outro valor pro parametro Ex.

Tabela.Close;
Tabela.parameter.parambyname('Parcdfunc').value:=200
Tabela.Open;
Ai ocorre o problema, a eu ja trouxe os valores da query pra ver se ele esta atualizada e sim ela traz os valores atualizados. O Problema é a Dbgrid, ela permanece com os valores da primeira seleção, não importa o que eu faça, ja dei close open na tabela, ja dei ative=true e false, ja fiz uma série de coisas que achei nos foruns mas nada resolveu, alguem tem ideia do que eu posso fazer?
Amauri Alves

Amauri Alves

Curtidas 0

Respostas

Claudio Andrade

Claudio Andrade

31/08/2019

Boa Noite,
Tenho a seguinte situação:
-Uma tabela AdoQuery que recebe o seguinte select: Setect * from funcionarios where codfun=:Parcdfunc
- A esta query esta ligado um datasource.
- tenho um formulário onde esta uma DBGRID ligada ao datasorce da tabela a cima.

A Situação é a seguinte: Quando eu passo o parametro pra tabela. Exemplo Tabela.Close;
Tabela.parameter.parambyname('Parcdfunc').value:=100
Tabela.Open;
Quando eu faço isto funciona beleza, a dbgrid traz certinho os dados da query, porem se eu executar o processo novamente e informar outro valor pro parametro Ex.

Tabela.Close;
Tabela.parameter.parambyname('Parcdfunc').value:=200
Tabela.Open;
Ai ocorre o problema, a eu ja trouxe os valores da query pra ver se ele esta atualizada e sim ela traz os valores atualizados. O Problema é a Dbgrid, ela permanece com os valores da primeira seleção, não importa o que eu faça, ja dei close open na tabela, ja dei ative=true e false, ja fiz uma série de coisas que achei nos foruns mas nada resolveu, alguem tem ideia do que eu posso fazer?



Veja se ajuda:

DBGid.Refresh;
GOSTEI 0
Amauri Alves

Amauri Alves

31/08/2019

Boa Noite,
Tenho a seguinte situação:
-Uma tabela AdoQuery que recebe o seguinte select: Setect * from funcionarios where codfun=:Parcdfunc
- A esta query esta ligado um datasource.
- tenho um formulário onde esta uma DBGRID ligada ao datasorce da tabela a cima.

A Situação é a seguinte: Quando eu passo o parametro pra tabela. Exemplo Tabela.Close;
Tabela.parameter.parambyname('Parcdfunc').value:=100
Tabela.Open;
Quando eu faço isto funciona beleza, a dbgrid traz certinho os dados da query, porem se eu executar o processo novamente e informar outro valor pro parametro Ex.

Tabela.Close;
Tabela.parameter.parambyname('Parcdfunc').value:=200
Tabela.Open;
Ai ocorre o problema, a eu ja trouxe os valores da query pra ver se ele esta atualizada e sim ela traz os valores atualizados. O Problema é a Dbgrid, ela permanece com os valores da primeira seleção, não importa o que eu faça, ja dei close open na tabela, ja dei ative=true e false, ja fiz uma série de coisas que achei nos foruns mas nada resolveu, alguem tem ideia do que eu posso fazer?



Veja se ajuda:

DBGid.Refresh;
GOSTEI 0
Amauri Alves

Amauri Alves

31/08/2019

Boa Noite,
Tenho a seguinte situação:
-Uma tabela AdoQuery que recebe o seguinte select: Setect * from funcionarios where codfun=:Parcdfunc
- A esta query esta ligado um datasource.
- tenho um formulário onde esta uma DBGRID ligada ao datasorce da tabela a cima.

A Situação é a seguinte: Quando eu passo o parametro pra tabela. Exemplo Tabela.Close;
Tabela.parameter.parambyname('Parcdfunc').value:=100
Tabela.Open;
Quando eu faço isto funciona beleza, a dbgrid traz certinho os dados da query, porem se eu executar o processo novamente e informar outro valor pro parametro Ex.

Tabela.Close;
Tabela.parameter.parambyname('Parcdfunc').value:=200
Tabela.Open;
Ai ocorre o problema, a eu ja trouxe os valores da query pra ver se ele esta atualizada e sim ela traz os valores atualizados. O Problema é a Dbgrid, ela permanece com os valores da primeira seleção, não importa o que eu faça, ja dei close open na tabela, ja dei ative=true e false, ja fiz uma série de coisas que achei nos foruns mas nada resolveu, alguem tem ideia do que eu posso fazer?



Veja se ajuda:

DBGid.Refresh;


Obrigado pelo retorno mas a situação não mudou
GOSTEI 0
Ricardo Araujo

Ricardo Araujo

31/08/2019

Boa tarde,

Precisa fechar e abrir a tabela tá atualiza no dbgrid.

GOSTEI 0
Amauri Alves

Amauri Alves

31/08/2019

Boa Noite,
Tenho a seguinte situação:
-Uma tabela AdoQuery que recebe o seguinte select: Setect * from funcionarios where codfun=:Parcdfunc
- A esta query esta ligado um datasource.
- tenho um formulário onde esta uma DBGRID ligada ao datasorce da tabela a cima.

A Situação é a seguinte: Quando eu passo o parametro pra tabela. Exemplo Tabela.Close;
Tabela.parameter.parambyname('Parcdfunc').value:=100
Tabela.Open;
Quando eu faço isto funciona beleza, a dbgrid traz certinho os dados da query, porem se eu executar o processo novamente e informar outro valor pro parametro Ex.

Tabela.Close;
Tabela.parameter.parambyname('Parcdfunc').value:=200
Tabela.Open;
Ai ocorre o problema, a eu ja trouxe os valores da query pra ver se ele esta atualizada e sim ela traz os valores atualizados. O Problema é a Dbgrid, ela permanece com os valores da primeira seleção, não importa o que eu faça, ja dei close open na tabela, ja dei ative=true e false, ja fiz uma série de coisas que achei nos foruns mas nada resolveu, alguem tem ideia do que eu posso fazer?




Bom dia pessoal,
Consegui resolver da seguinte forma:

depois de dar close na tabela eu desabilito o datasourte Na dbgrid

Db_ResPro.DataSource.Enabled:=false;


Antes de dar open na tabela eu aponto novamente o datasource na dbgrid

Db_ResPro.DataSource:=DmAtbGerEst.DS_Qry_EstPro;

***********************************************************
o código ficou assim
***********************************************************
DmAtbGerEst.Qry_EstPro.Close;
Db_ResPro.DataSource.Enabled:=false;
DmAtbGerEst.Qry_EstPro.Parameters.ParamByName('PrmDatIni01').Value:=StrToDate(ME_Dtaini.Text);
DmAtbGerEst.Qry_EstPro.Parameters.ParamByName('PrmDatFim01').Value:=StrToDate(ME_Dtafim.Text);
DmAtbGerEst.Qry_EstPro.Parameters.ParamByName('PrmDatIni02').Value:=StrToDate(ME_Dtaini.Text);
DmAtbGerEst.Qry_EstPro.Parameters.ParamByName('PrmDatFim02').Value:=StrToDate(ME_Dtafim.Text);
DmAtbGerEst.Qry_EstPro.Parameters.ParamByName('PrmDatIni03').Value:=StrToDate(ME_Dtaini.Text);
DmAtbGerEst.Qry_EstPro.Parameters.ParamByName('PrmDatFim03').Value:=StrToDate(ME_Dtafim.Text);
Db_ResPro.DataSource:=DmAtbGerEst.DS_Qry_EstPro;
DmAtbGerEst.Qry_EstPro.Open;
************************************************************
GOSTEI 0
POSTAR