GARANTIR DESCONTO

Fórum Formatar campo SQL #368914

09/03/2009

0

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

Responder

Posts

09/03/2009

Woinch

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.


Responder

Gostei + 0

09/03/2009

Fabricio.ribeiro

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.


Responder

Gostei + 0

09/03/2009

Woinch

Pode me dar um exemplo?


Responder

Gostei + 0

09/03/2009

Fabricio.ribeiro

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.


Responder

Gostei + 0

10/03/2009

Abysmall

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;



Responder

Gostei + 0

10/03/2009

Fabricio.ribeiro

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.


Responder

Gostei + 0

10/03/2009

Fabricio.ribeiro

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar