Autor Tópico: consulta funciona no SQL BUILDER mas não funciona na aplicação RESOLVIDO  (Lida 992 vezes)

silviasodc

  • Novato
  • *
  • Mensagens: 3
    • Email
SELECT
   esquadrao_reserva,
   cafe,
   almoco,
   jantar,posto,
   CASE WHEN posto IN ('MB','BR','CL','TC','MJ','CP','1T','2T','AP') THEN "OFICIAL" WHEN posto IN ('SO','1S','2S','3S') THEN "GRADUADO" WHEN posto IN ('S2','S1','CB') THEN "PRAÇA" END AS refeitorio
FROM
   reserva


retorna esse erro


SelectLimit(SELECT esquadrao_reserva, cafe, almoco, jantar, posto, CASE WHEN posto IN ('MB','BR','CL','TC','MJ','CP','1T','2T','AP') THEN "OFICIAL" WHEN posto IN ('BR'0,'BR'1,'BR'2,'BR'3) THEN 'BR'4 WHEN posto IN ('BR'5,'BR'6,'BR'7) THEN 'BR'8 END as refeitorio from reserva , 12, 0)
« Última modificação: Agosto 28, 2015, 11:31:14 am por silviasodc »

silviasodc

  • Novato
  • *
  • Mensagens: 3
    • Email
Re:consulta funciona no SQL BUILDER mas não funciona na aplicação
« Responder #1 Online: Agosto 26, 2015, 12:30:14 am »
obrigada por responder, mas o código esta correto. Já testei na consulta ao banco e no SQL  BUILDER do scriptcase e funciona. Mas quando coloco esse código no SQL da aplicação de consulta ele dá erro de conexão ao banco. Se eu tirar a instrução: CASE WHEN posto IN ('MB','BR','CL','TC','MJ','CP','1T','2T','AP') THEN "OFICIAL" WHEN posto IN ('SO','1S','2S','3S') THEN "GRADUADO" WHEN posto IN ('S2','S1','CB') THEN "PRACA" END AS refeitorio, volta a funcionar, mas sem o resultado do que eu quero.anexei as consultas que fiz.
e no ambiente de produção da erro:
Atenção
Erro ao acessar o banco de dados

SelectLimit(SELECT posto, esquadrao_reserva, cafe, almoco, jantar, CASE WHEN posto IN ('MB','BR','CL','TC','MJ','CP','1T','2T','AP') THEN "OFICIAL" WHEN posto IN ('BR'0,'BR'1,'BR'2,'BR'3) THEN 'BR'4 WHEN posto IN ('BR'5,'BR'6,'BR'7) THEN 'BR'8 END as refeitorio from reserva , 12, 0)

Kleyber

  • Expert
  • *****
  • Mensagens: 2232
    • Email
Re:consulta funciona no SQL BUILDER mas não funciona na aplicação
« Responder #2 Online: Agosto 26, 2015, 07:35:56 am »
Silvia,

Acho que o problema é a mistura de aspas simples com aspas duplas. Use somente as aspas simples em todo o teu select, tipo assim:

SELECT
   esquadrao_reserva,
   cafe,
   almoco,
   jantar,posto,
   CASE WHEN posto IN ('MB','BR','CL','TC','MJ','CP','1T','2T','AP') THEN 'OFICIAL' WHEN posto IN ('SO','1S','2S','3S') THEN 'GRADUADO' WHEN posto IN ('S2','S1','CB') THEN 'PRAÇA' END AS refeitorio
FROM
   reserva
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:consulta funciona no SQL BUILDER mas não funciona na aplicação
« Responder #3 Online: Agosto 26, 2015, 08:08:38 am »
Você pode tirar o case do sql, deixar apenas o campo posto e criar o campo refeitório, a descrição dele você faz no evento onRecord.
ex:
if({reserva}=='MB' || {reserva}=='BR')
{
  {refeitorio} = "OFICIAL";
}
else if({reserva}=='SO' || {reserva}=='1S')
{
  {refeitorio} = "GRADUADO";
}
e assim por diante

silviasodc

  • Novato
  • *
  • Mensagens: 3
    • Email
Re:consulta funciona no SQL BUILDER mas não funciona na aplicação
« Responder #4 Online: Agosto 28, 2015, 11:30:06 am »
Valeu! Rodrigo Goulart Padovezzi, sua sugestão me ajudou a resolver. Muito obrigada"

Marcio Akira Okamura

  • Novato
  • *
  • Mensagens: 45
    • Email
Re:consulta funciona no SQL BUILDER mas não funciona na aplicação RESOLVIDO
« Responder #5 Online: Setembro 07, 2015, 06:49:21 pm »
Para incluir uma experiência.
Sempre tenho que trocar formas de executar os sql no COMANDO SQL da aplicação. Sendo que no SQL BUILDER e diretamente no banco funciona.
Trocar funções CASE WHEN por DECODE, sempre lembrar de colocar AS para nome da variável.
O COMANDO SQL da aplicação uma vez passado pelo "teste" do SQL BUILDER, aba EXECUÇÃO deveria funcionar.

Estou usando ORACLE.

Esta é uma sugestão de revisão dessa parte da ferramenta.