[firebase-br] SQLWHEREITENS, Campo do tipo Data comparado com IS NULL

Carlos Andrade krlosgilson em gmail.com
Qua Fev 12 13:08:02 -03 2020


Gustavo Novaes, se o trecho que código que é adicionado não estiver 
dentro de "WHERE", ou seja for parte do "JOIN" você deve adicionar " AND 
" antes, caso contrário seu SQL ficará assim, gerando erro na instrução:

(SELECT MOCADPAC.CODPAC , MOCADPAC.NOMEPESSOA, MOCADPA1.EMAIL,
MOCADPAC.DATADEMISSAO FROM MOCADPAC
LEFT JOIN MOCADPA1 ON
MOCADPAC.CODPAC=MOCADPA1.CODPAC AND
MOCADPAC.DEPENDENTE=MOCADPA1.DEPENDENTE(DATADEMISSAO IS NULL)

Eu acredito que o campo "DATAEMISSAO" faça parte da tabela "MOCADPAC", se sim, deve então ficar desta forma:

(SELECT MOCADPAC.CODPAC , MOCADPAC.NOMEPESSOA, MOCADPA1.EMAIL,
MOCADPAC.DATADEMISSAO FROM MOCADPAC
LEFT JOIN MOCADPA1 ON
MOCADPAC.CODPAC=MOCADPA1.CODPAC AND
MOCADPAC.DEPENDENTE=MOCADPA1.DEPENDENTE
WHERE (DATADEMISSAO IS NULL)

ficando assim a linha a ser adicionada:

if checkbox.checjed then
     iboquery1.sqlwhereitens.add(' WHERE (DATADEMISSAO IS NULL)');
  

Em 12/02/2020 12:00, lista-request em firebase.com.br escreveu:
> Cantu,
> A instrução SQL mantive apenas a seleção e o JOIN, sem clausulas WHERE
> (SELECT MOCADPAC.CODPAC , MOCADPAC.NOMEPESSOA, MOCADPA1.EMAIL,
> MOCADPAC.DATADEMISSAO FROM MOCADPAC
> LEFT JOIN MOCADPA1 ON
> MOCADPAC.CODPAC=MOCADPA1.CODPAC AND
> MOCADPAC.DEPENDENTE=MOCADPA1.DEPENDENTE
>
> No formulário tenho um checknox que se selecionado (omitir demitidos)
> adiciona aquela instrução no evento ONPREPARESQL.
> Há um botão onde executo:
>     iboquery1.invalidadesql;
>     iboquery1.refresh;
>
> No evento onpreparesql:
>
> if checkbox.checjed then
>      iboquery1.sqlwhereitens.add('(DATADEMISSAO IS NULL)').   (somente
> ativos).
>
> Talvez eu não tenha entendido como preparar essa query, o que colocar em
> KeyLinhs, JoinLinks, Ordering....
>
> "Percebi" que não devo utilizar pseudonimos para as tabelas (.... FROM
> MOCADPAC PAC) ou (...FROM MOCADPAC AS PAC) para referencia-la ao longo da
> instrução.




Mais detalhes sobre a lista de discussão lista