Histórico da Página
...
Em versões mais antigas destes bancos de dados, era utilizada a condição OUTER JOIN da seguinte forma:
INFORMIX Diretiva OUTER | SELECT empresa.cod_empresa, log_empresa_compl.dat_encerram_ativ FROM empresa, OUTER log_empresa_compl WHERE log_empresa_compl.empresa = empresa.cod_empresa |
---|---|
ORACLE Diretiva (+) | SELECT empresa.cod_empresa, log_empresa_compl.dat_encerram_ativ FROM empresa, log_empresa_compl WHERE log_empresa_compl.empresa (+) = empresa.cod_empresa |
SQLSERVER Diretiva * | SELECT empresa.cod_empresa, log_empresa_compl.dat_encerram_ativ FROM empresa, log_empresa_compl WHERE log_empresa_compl.empresa = * empresa.cod_empresa |
Para resolver esta diferença, era feito o uso da função log0810_prepare_sql() montando uma instrução SQL em um bloco de texto (CHAR) e enviado como parâmetro para função log0810_prepare_sql(), que tinha como objetivo converter a instrução SQL conforme o banco de dados em uso no Logix e o resultado seria retornado com a instrução compatível com o banco de dados.
...
Com a evolução dos bancos de dados homologados para o Logix, esta diferença das diretivas utilizadas foram resolvidas e agora todos os bancos de dados fazem uso da instrução SQL no padrão ANSI SQL. Com isso, passamos a resolver o SQL anterior de uma única forma, utilizando o bloco LEFT OUTER JOIN:
INFORMIX ORACLE SQLSERVER | SELECT empresa.cod_empresa, log_empresa_compl.dat_encerram_ativ FROM empresa LEFT OUTER JOIN log_empresa_compl ON (log_empresa_compl.empresa = empresa.cod_empresa) |
---|
Desta forma os códigos dos fontes Logix que fazem uso da função log0810_prepare_sql() precisam ser ajustados para adaptar os SQLs preparados e com chamada da função log0810_prepare_sql() para utilizarem o novo padrão ANSI SQL - OUTER JOIN e retirada da chamada da função log0810_prepare_sql() conforme exemplo abaixo:
...