Macros do Broker
Esta seção descreve as macros disponíveis no Broker, detalhando suas definições, utilidades e especificações.
O que é um macro?
Um macro é um comando criado em cima de tarefas repetitivas para automatizar e agilizar um conjunto de ações ou processos.
Os macros no contexto do desenvolvimento do Millennium Broker são comandos criados não só para agilizar e diminuir a quantidade de código a ser escrito, mas também para possibilitar novas funcionalidades e principalmente para manter a compatibilidade entre bancos diferentes
Bancos de dados suportados e compatibilidade
Atualmente, o sistema do Millennium atua com os seguintes bancos de dados:
- SQL Server
- Firebird
Logo, para atender a todos os bancos, seria necessário o dobro de código, o que não é viável.
Portanto, foi criado um sistema de macros que abstrai os bancos de dados, criando uma camada de compatibilidade que permite que as macros sejam criadas para um banco e também funcionem em outros.
No exemplo abaixo, cada banco de dados tem uma forma diferente de retornar a data e hora atual, mas a macro #NOW()
retorna a data e hora corretamente para todos os bancos.
SQL Server
SELECT GETDATE() AS DATA_HORA FROM DUAL;Firebird
SELECT CURRENT_DATE AS DATA_HORA FROM DUAL;Macro - #NOW()
SELECT #NOW() AS DATA_HORA FROM DUAL;Ao verificarmos os logs da pasta wts/trace podemos ver o resultado após a execução do método com a query acima:
1018727054-18900-21688 11/18/24 10:29:57:840
SQL_PREPARE TRANSACTION_ID:10
SELECT CURRENT_TIMESTAMP as DATA_HORA FROM DUALPortanto, as macros são uma camada de compatibilidade que permite que as queries sejam iguais para todos os bancos, mas internamente elas são convertidas para o banco correto.
Atenção
As macros podem ser instáveis, ou seja, podem não funcionar da maneira esperada em certas situações.