GARANTIR DESCONTO

Fórum Select iif dentro do Delphi #493769

26/09/2014

0

Boa tarde pessoal. Eu estou com o seguinte problema: Eu tenho na minha base de dados uma tabela que contém uma coluna chamada PRIORIDADE. A PRIORIDADE é do Tipo INTEGER e pode receber valores de 0 até 4 sendo 0 para "Crítica", 1 para "Alta, 2 para "Média", 3 para "Normal" e 4 para "Planejada".

No Delphi: Eu tenho uma IBQuery que faz um select nessa coluna PRIORIDADE. " select s.prioridade from servicos s ".

Daí no evento OnClick do meu butPesquisar eu faço o seguinte:

1º - Passo Close para a IBQuery.
2º - Limpo o SQL dela.
3º - Adiciono o SQL que eu necessito: SQL.Add('select iif(s.prioridade = 0, '+QuotedStr('Crítica')+', iif(s.prioridade = 1, '+QuotedStr('Alta')+', '.................... from servicos s);
OBS. Os "pontos" indicam que eu continuei a lógica do SQL até o final corretamente.
4º - Abro a IBQuery
5 - Neste passo era para a minha Grid receber os valores do select, porém eu me deparo com o seguinte problema: O Tipo do meu dado no banco é do tipo Integer e eu preciso exibir na Grid um valor do tipo String.
OBS: O Delphi reclama de "Dynamic SQL Error. SQL error code = -104. Token unknown - line 2, column 31. iif."

Já tentei várias coisas e não consegui. Se alguém puder me ajudar eu fico agradecido.

Uso Delphi XE e Firebird
Marlon Minotti

Marlon Minotti

Responder

Posts

26/09/2014

Joel Rodrigues

Aparentemente tem algum erro no SQL. Você já tentou executar essa instrução diretamente no Firebird?
Responder

Gostei + 0

27/09/2014

Marlon Minotti

Sim, e funciona perfeitamente.
Responder

Gostei + 0

27/09/2014

Marlon Minotti

E tem mais uma coisa:

Na minha Query está o mesmo select, idêntico.
Quando eu inicio o Sistema a minha GRID vem com os valores que eu passo no IIF, "Critica", "Alta" e os demais.
Mas quando eu faço uma nova pesquisa onde eu limpo minha grid e passo o SQL novamente, ele me dá erro no IIF. Eu vou conferir letra por letra, mas eu já vi altas vezes e não identifiquei erro.
Responder

Gostei + 0

27/09/2014

Marlon Minotti

Amigo, mil desculpas, no final do meu código eu coloquei um ShowMessage(SQL.Text) e vi que estava faltando uma vírgula perdida la no meio. O Problema era comigo mesmo.. kkkkkkkkkkkkkkkkkkkk Que vergonha :D

Mas muito obrigado hehehe
Responder

Gostei + 0

28/09/2014

Deivison Melo

finalizando o tópico!
Responder

Gostei + 0

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

Aceitar