Erro no SQL do campo SELECT com variáveis da tabela

Bom dia.
Tenho esse código em um campo do tipo SELECT em um FORM:
SELECT aluno.IDF_ALUNO, coalesce(aluno.NME_ALUNO_PESQUISA, aluno.nme_aluno) nme_aluno
FROM ALUNO
where exists (select * from aluno_escola
where aluno_escola.idf_aluno = aluno.idf_aluno
and aluno_escola.idf_escola = 0{idf_escola}
and aluno_escola.ano_letivo = 0[vexercicio])
union
SELECT aluno.IDF_ALUNO, coalesce(aluno.NME_ALUNO_PESQUISA, aluno.nme_aluno) nme_aluno
FROM ALUNO
where idf_aluno = 0{idf_aluno}
ORDER BY 2

Aonde:
{idf_escola} é atualizado via ajax;
[vexercicio] é uma variaável salva

O código com a linha:
where idf_aluno = 0{idf_aluno}
não seleciona, nem no debug mostra o que é executado. removendo o {idf_aluno} que é uma variável da tabela que na alteração vai ter valor, a SQL seleciona dados.

Resumindo quando passo alguma variável da tabela/form para a SQL e essa variável não vem atualizada pelo AJAX. ocorre um erro de seleção quem nem o debug exibe para vermos o que ocorreu…

coloca aspas simples no ‘{idf_escola}’ e ‘[vexercicio]’

1 Curtida

não adianta, foi a primeira coisa que fiz

Se tu rodar sem ele no sql, mas der um echo na variavel ou um alert, só para ver o conteudo que esta chegando, se não roda pode estar vindo algum lixo ou algo assim.

Só printa ela em qualquer lugar q der.

Qualquer variável da tabela que eu coloque no SQL, ele não seleciona, exceto se eu mandar dar atualizar via AJAX.

Até se eu colocar para o campo anterior recarregar a tela, a SQL não recebe o valor da tabela.

Já fiz todos os testes possíveis…

Acho que seria valido ver com a NM, mandando no e-mail “bugs@scriptcase.net”, eles vão acessar e ver se é um bug msm, pela descrição o código parece correto.

Uma curiosidade… o que significa esse 0 ao lado da vaariável de campo?

1 Curtida

se o parâmetro ou variavel que é numérica estiver vazia fica o ZERO se tiver valor 0 concatenado com o valor do campo.

Esse código aí em cima não funciona não.

Basta colocar em modo debug para ver.

1 Curtida

exatamente o que eu disse. não funciona. mas se remover o idf_aluno funciona (pode deixar o ZERO). se eu substituir por qualquer outro campo do formulário/tabela (exceto o idf_escola que vem por ajax. não funciona. é isso que estou dizendo no início…

tem algum erro no tratamento da SQL pelo SC. e outra coisa se fizer um inner join em tabelas muito grandes o compilador congela. fica horas rodando e não compila.

Ideal é construir esse select dinamicamente

2 Curtidas