Controle e Sub-rotinas
#CALL
Definição: Chama outro método, permitindo reutilizar consultas em outros métodos.
Utilidade: Modularização e reutilização de código SQL.
Especificação:
Exemplo:
#CHECK
Definição: Realiza validações e retorna um erro caso a condição seja atendida.
Utilidade: Implementar validações condicionais em consultas.
Especificação:
Exemplo:
#EACH
Definição: Itera sobre um REGISTRO (array/lista) e executa comandos SQL para cada item individualmente.
Um REGISTRO é criado quando se atribui uma variável (:VARIAVEL) a um resultado de SELECT. O macro #EACH() permite processar cada elemento deste registro separadamente.
Formas de Uso:
- Comando único - use ponto e vírgula no final:
- Múltiplos comandos - use estrutura #BEGIN/#END; (com ponto e vírgula apenas no final):
Variações de Parâmetros:
- Parâmetro do método - sem os dois pontos, acessa parâmetros do próprio método:
- Sem alias (AS) - acessa diretamente pelo nome do registro:
- **SELECT direto com atribuição da variável ** - realiza a consulta e itera sobre o resultado:
#FETCHALL
Definição: Força a consulta a processar todos os registros de uma única vez.
Utilidade: Necessário em casos especiais onde é preciso processar todos os registros imediatamente.
Especificação:
Exemplo:
#NOERROR
Definição: Ignora qualquer erro que ocorrer no comando seguinte.
Utilidade: Prosseguir com a execução mesmo que ocorram erros.
Especificação:
#NOFILTER
Definição: Ignora os filtros de usuário configurados (como Loja, Conta, etc.), retornando todos os registros.
Utilidade: Necessário quando a consulta deve ignorar filtros de segurança aplicados por padrão.
Especificação:
Exemplo:
#NOFILTER_SESSION
Definição: Similar ao #NOFILTER, mas mantém o comportamento para todo o script.
Utilidade: Aplicar o #NOFILTER a todas as consultas do script.
Especificação:
#NOPROTECT
Definição: Desabilita a proteção de segurança, não aplicando os filtros padrão no servidor.
Utilidade: Usado em casos onde é necessário acesso total aos dados sem restrições.
Especificação:
Exemplo:
#PRIVATE
Definição: Indica que o resultado da consulta não deve fazer parte do resultado final do método.
Utilidade: Evitar que consultas intermediárias apareçam no resultado final.
Especificação:
Exemplo:
#TOP
Definição: Limita o número de registros retornados pelo método do broker às N primeiras linhas.
Utilidade: Restringir a quantidade de dados retornados.
Especificação:
Exemplo: