Jump to content

Campo alias da query no dbgrid nao funciona


Vieira

Recommended Posts

Tenho o seguinte codigo funcionando perfeitamente no DBGrid:

 

with uniMainModule.qryAuxCliente do
begin
  Close;
  SQL.Clear;
  SQL.Add('select *, datediff(curdate(), clientes.DATAULTIMACOMPRA) as dias2 from clientes where inatividade is not null and dataultimacompra between :d1 and :d2 order by nome');
  Params.ParamByName('d1').AsDate := UniDateTimePicker11.DateTime;
  Params.ParamByName('d2').AsDate := UniDateTimePicker12.DateTime;
  Open();
  UniDBGrid1.Columns[3].FieldName := 'dias2'; //arrumar aqui

 

mas quando utilizo unidbgrid nao funciona, a coluna 3 nao recebe o valor do alias criado na query.

 

Alguem pode ajudar?

Link to comment
Share on other sites

Olá Rodrigo, se eu entendi corretamente.

 

Caso seu DataSource esteja ligado com sua uniDBGrid o FieldName da sua coluna 3 já vai ter o FieldName = "dias2".

 

Porém caso você queira alterar o Caption de sua coluna da Grid basta fazer

 

UniDBGrid1.Columns[3].Title.Caption := 'dias2updated';

Link to comment
Share on other sites

Bom dia Marlon,

 

Vou tentar explicar como eu uso:

 

No grid eu criei uma coluna em branco.

 

Depois faço uma consulta comparando a data de hoje com a data da ultima compra do cliente.

 

O resultado de dias deveria ser exibido nessa coluna, entao eu atribuí o alias dias2.

 

O datasource esta ligado ao grid mas esse campo dias2 nao existe na tabela, ele é criado como resultado da consulta atediff(curdate(), clientes.DATAULTIMACOMPRA) as dias2

 

Na linha que eu atribuo o valor do fieldname, nao esta retornando o valor desta consulta, vem em branco.

 

Se eu utilizo dbgrid funciona normalmente, no unidbgrid não.

 

A forma que estou encontrando é criar um campo agregado na tabela pra trazer esse resultado, mas gostaria de entender/aprender o porque nao funciona no unigui.

 

Obrigado

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...