[Resolvido] Porque não consigo usar essa Query no lookup?

Muito bom dia ilustres companheiros!

Estou com um probleminha aqui na minha aplicação pois não funciona a query que eu coloquei no lookup de edição, segue abaixo:

SELECT IDPRODUTOS, CODIGO, nome FROM ROOT.PRODUTOS where IDPRODUTOS in ( select PRODUTO_IDPRODUTO from ROOT.PROD_EMP_MAT_SET where EMPRESA_IDEMPRESA = 60 ) ORDER BY CODIGO, nome;

no banco funciona normal, estou usando ORACLE 11g, no lugar do “60” entraria o id_empresa da aplicação mestre, no SC ele fica com uma tela de loading e não acontece nada e não estoura nenhum erro…

Podem me ajudar?

Agradeço desde já

Cola aqui ó código lookup ou onde exatamente colocou essa SQL para gente poder analisar, aparentemente tem uma ; ali no final e não pode.

Olha não sei como colocar print de tela aqui… mas o código é esse ai msm que ta acima, o ‘;’ eu ja tirei e msm assim nada…

Não precisa de print… copie e cole aqui o código que foi inserido no lookup do campo…

SELECT IDPRODUTOS, CODIGO, nome FROM ROOT.PRODUTOS where IDPRODUTOS in ( select PRODUTO_IDPRODUTO from ROOT.PROD_EMP_MAT_SET where EMPRESA_IDEMPRESA = 60 ) ORDER BY CODIGO, nome

ative debug e veja o que tem errado

Desculpe a falta de experiência mas como faço isso no SC?

Na sua aplicação, vai em Aplicação->Configuração e coloque Modo Debug como Sim

muito obrigado esse modo debug me ajudou muito!

cheguei nesse erro:

ORA-00904: “SC_CONCAT”: invalid identifier

o engraçado é que se tiver o lookup padrão no caso sem meu subselect, ele vai de boa… alguém já passou por isso?

Mostra como está seu select agora

SELECT IDPRODUTOS, CODIGO, NOME FROM ROOT.PRODUTOS where IDPRODUTOS in( select IDPRODUTOS from ROOT.PROD_EMP_MAT_SET where EMPRESA_IDEMPRESA = 60) ORDER BY CODIGO, NOME

Retirei o sc_concat mas daí ele me traz todos os produtos do sistema… e não filtra pela Empresa da tabela PROD_EMP_MAT_SET. Essa tabela limita os produtos que determinada empresa produz… portanto quando for selecioná-los em minha aplicação PRODUTO_PAINEL ela precisa mostrar somente os que tão relacionados.

Cria uma view e faz o select nessa view

Pessoal obrigado pela ajuda e atenção…

Consegui fazer o select funcionar… mas tá com problema ainda pois consegui quando passo o parâmetro ID_EMPRESA como 60 ou qualquer outro valor que tenha registro.

O problema agora é que quando eu coloco ID_EMPRESA(campo da aplicação) ele não vai e trava a minha aplicação MESTRA, no caso tenho uma Aplicação EMPRESA que tem no detalhe a PRODUTO_PAINEL na qual a chave estrangeira é IDEMPRESA para ID_EMPRESA… o ID da EMPRESA não era pra passar para meu ID_EMPRESA e eu conseguir manipulá-lo no lookup?

EMPRESA->PRODUTO_PAINEL
IDEMPRESAS->ID_EMPRESA

me ajudem por favor… :frowning:

Galera alguém tem ideia do que está acontecendo com minha query… identifiquei que o problema é que ID_EMPRESA está vazio daí no WHERE ele compara EMPRESA_IDEMPRESA = ‘nada’ no lugar de comparar com o ID_EMPRESA que é um campo da minha aplicação Detalhe na qual achei que recebesse o IDEMPRESAS da aplicação MESTRE, coloquei em modo debug e peguei esse erro, mas não sei como resolver.

Tentei criar uma variável global no MESTRE passando o IDEMPRESAS como valor pra ela e em seguida criei uma variável local pra pegar do lado do DETALHE. Ambas no evento onLoad das aplicações. A query agora ficou assim:

SELECT IDPRODUTOS,CODIGO, NOME
FROM ROOT.PRODUTOS 
where IDPRODUTOS in ( select PRODUTO_IDPRODUTO
					  from ROOT.PROD_EMP_MAT_SET
					  where EMPRESA_IDEMPRESA = $idempresa_local )
ORDER BY CODIGO, NOME

o engraçado é que quando dou um echo na variável $idempresa_local o valor do IDEMPRESAS(aplicação MESTRE) é exibido e confere os valores.

Agradeço ao pessoal que deu atenção.

Sério que você usa ROOT como nome de tabela?

o sistema quando cheguei já tava assim… tem um monte de tabela com esse poha de nome… to ficando loco

Achei que era até pegadinha. rs.

não cara… estou f*¨&%ido msm… se puder ajudar agradeço, se não tudo bem tbm. o ROOT é nome do BD(Tablespace)…

Resolvi isso pessoal obrigado pelo ajuda dos ilustres da casa…

ficou aasim:

SELECT IDPRODUTOS, CODIGO||' - '||NOME FROM ROOT.PRODUTOS where IDPRODUTOS in ( select PRODUTO_IDPRODUTO from ROOT.PROD_EMP_MAT_SET where EMPRESA_IDEMPRESA = [idempresa_global] ) ORDER BY CODIGO, NOME

O problema é que eu estava tentando atribuir minha variável global [idempresa_global] para o ID_EMPRESA da minha aplicação grid view editável. Quando na verdade era só jogar direto… e a concatenação fiz dessa maneira pq nem o sc_concat e nem o CONCAT do próprio ORACLE funcionam.