Formatar campo SQL

Delphi

09/03/2009

Estou tentando formatar um campo de um comando SQL através de uma QUERY, mas ainda não obitive sucesso. Exemplo:
with DataModule.Query to
begin
  close;
  SQL.clear;
  SQ.Add(´select TOTAL from conta...´);
  ParamByname(´TOTAL´).DisplayFormat := ´#,0.00´;
  open;
end;


Sendo que [b:34c0cbdefe]TOTAL [/b:34c0cbdefe]é um campo do tipo [b:34c0cbdefe]NUMERIC[/b:34c0cbdefe]. Porém a propriedade
[b:34c0cbdefe]DisplayFormat [/b:34c0cbdefe]não é reconhecido como complemento de [b:34c0cbdefe]ParamByNam[/b:34c0cbdefe]e.
Para o que pretendo fazer o único meio de formatar o campo é fazendo
as modificações na [b:34c0cbdefe]QUERY[/b:34c0cbdefe] no proprio código.

Desde já obrigado.


Fabricio.ribeiro

Fabricio.ribeiro

Curtidas 0

Respostas

Woinch

Woinch

09/03/2009

Você não pode setar formatos de visualização (display format) para Parâmetros, esse método serve apenas para campos (TFields). Não sei se eu entendi direito o que você quer. Mas pelo código e pelo exemplo da Select. Utilize ao invez de ParamByName FieldByName.

Espero ter ajudado.


GOSTEI 0
Fabricio.ribeiro

Fabricio.ribeiro

09/03/2009

Woinch não Funcionou.
O que eu quero teoricamente é simples. Quero formatar um Campo de uma
tabela através de uma QUERY, e exibir isto em um DBGrid. Porém a formatação
só pode ser feita no código, ou seja, eu não posso colocar o comando SQL
diretamente no componente QUERY.


GOSTEI 0
Woinch

Woinch

09/03/2009

Pode me dar um exemplo?


GOSTEI 0
Fabricio.ribeiro

Fabricio.ribeiro

09/03/2009

Bom... tenho um DBGrid onde quero exibir os registros da Tabela CONTA.
Nesta Tabela temos os campos ID_CONTA, DATA, PERIODO e TOTAL.
Total é do tipo NUMERIC(2,9).
Quando faço uma consulta na tabela e venho com um determinado registro,
exibo-o no DBDrig, porém, por exempo, no campo TOTAL é exibido o seguinte valor: 1,5.
Agora quero formatar este campo para que seja exibido no DBGrid o seguinte valor: 1,50. Ou seja, os valores terão pelos menos duas casas decimais após a virgula.
O DBGrid estará ligada com o DataSoruce da QUERY.

O que foi explicado assima não é difícil quando a consulta é inserida diretalmente na propriedade SQL de um componente QUERY, poi basta
usar a propriedade Display Format dos Campos da Consulta. Porém
quero fazer isto em um procedimento, ou seja, em tempo de execução,
e é aí que se encontra o problema.

Espero que tenha esclarecido o problema.


GOSTEI 0
Abysmall

Abysmall

09/03/2009

Olá Fabrício...

Qual versão do Delphi você usa?

Tente usar o seguinte:
with DataModule.Query do
begin
  Close;
  SQL.Clear;
  SQL.Add(´ SELECT CAST(CONTA.TOTAL AS FLOAT) AS TOTAL FROM CONTA ´); 
  Open;
  FieldByname(´TOTAL´).DisplayFormat := ´#,0.00´;
end;



GOSTEI 0
Fabricio.ribeiro

Fabricio.ribeiro

09/03/2009

Olá abysmall!
Estou usando o Delphi 7 e o banco Firebird 2.0
Tentei a sua sugestão, porém o delphi não reconhece DisPlayFormat como um complemento de FielByName().

Obrigado por responder.


GOSTEI 0
Fabricio.ribeiro

Fabricio.ribeiro

09/03/2009

UFFA!
Demorou mas consegui...
Bom pessoal obrigado pela ajuda, acabei achando um meio de se resolver
tal problema, e é do seguinte modo:
with DataModule.Query do
begin
  Close;
  SQL.Clear;
  SQL.Add(´ SELECT CAST(CONTA.TOTAL AS FLOAT) AS TOTAL FROM CONTA ´);
  Open;
  TNumericField(DataModule.Query.FieldByname(´TOTAL´).DisplayFormat := ´#,0.00´;
end;


Obrigado por tudo! :D


GOSTEI 0
POSTAR