EXTRACT() do firebird no delphi

Delphi

Firebird

23/03/2016

Tenho a query:

select IDDESPESA,
DESCRICAO,
VALOR,
DATA_VENCIMENTO,
PAGO,
extract(DAY from DATA_VENCIMENTO) AS DIA,
extract(MONTH from DATA_VENCIMENTO) AS MES,
extract(YEAR from DATA_VENCIMENTO) AS ANO
from TBDESPESAS
where 1 = 1
order by ANO, MES, DIA

meu problema é que quando coloco qryRelDespesas.FieldByName('DIA').AsInteger o delphi informa que esta coluna não existe? O que está errado?
Emir Neto

Emir Neto

Curtidas 0

Melhor post

Natanael Ferreira

Natanael Ferreira

23/03/2016

Depende do método para que o campo seja reconhecido:

[b]1º Metodo[/b]: Colocando o código SQL no seu código fonte:

with qryRelDespesas do
  begin
    Close;
    SQL.Clear;
    SQL.Text := 'select IDDESPESA, DESCRICAO, VALOR, DATA_VENCIMENTO, PAGO, ' +
      ' extract(DAY from DATA_VENCIMENTO) AS DIA, extract(MONTH from DATA_VENCIMENTO) AS MES, ' +
      ' extract(YEAR from DATA_VENCIMENTO) AS ANO from TBDESPESAS where 1 = 1 order by ANO, MES, DIA';
    Open;
  end;

  ShowMessage(IBQuery1.FieldByName('DIA').AsString);


[b]2º Método[/b]: Você digita o código SQL diretamente propriedade SQL da query em tempo de projeto.

Neste caso para que funcione, dê duplo clique na Query, botão direito e adicione todos os fields na query.
GOSTEI 1

Mais Respostas

Isaac Jose

Isaac Jose

23/03/2016

boa tarde não conheço esse banco porem o problema deve estar no order by ... ele não deve reconhecer o campo dia pelo fato de ser um apelido.
GOSTEI 0
Emir Neto

Emir Neto

23/03/2016

O order by funcionou 100%, meu problema foi no TIBQuery, que não reconheceu o field
GOSTEI 0
Emir Neto

Emir Neto

23/03/2016

botão direito e adicione todos os fields na query
, esse foi meu erro primário. Já havia feito isso antes de colocar dia, mes e ano, aí não tinha como aparecer. Valeu pela dica.
GOSTEI 0
POSTAR