Índice:


      

Objetivo:


Neste documento será explicado e exemplificado o mecanismo de execução de Stored Procedures no RM Reports, tal qual informações de prioridade, execução e afins.

StoredProcedures repetidas


No caso de controles de StoredProcedure apontados para a mesma StoredProcedure, esta será executada apenas uma vez.

Exemplificando

Para exemplificar, abaixo está demonstrado um relatório contendo 5 controles de StoredProcedure, todos apontados para a mesma StoredProcedure, de nome ATUALIZAR_CONTADOR. Esta Procedure tem como função inserir em uma tabela criada apenas para este exemplo, a contagem de registros que possuem na tabela naquele momento:

CREATE TABLE EXEMPLO(
CONTAGEM INT
)

GO

CREATE PROCEDURE ATUALIZAR_CONTADOR AS BEGIN

INSERT INTO EXEMPLO SELECT COUNT(*) FROM EXEMPLO

END

GO


Ao executar o relatório, podemos notar que, apenas de todas as bandas serem carregadas corretamente, apenas um registro foi realizado na tabela EXEMPLO, justamente pelo fato da StoredProcedure ter sido executada apenas uma vez:


Antes ou depois de carregados os dados?


No RM Reports, uma StoredProcedure será sempre executada ANTES dos dados relacionados à banda serem buscados na base de dados ou resolvidos e carregados no relatório, independentemente de onde forem posicionados.

Isso quer dizer que posicionar um controle de StoredProcedure no Cabeçalho, Rodapé ou no próprio Detalhe não o fará ser executado naquela ordem específico.

Isso ocorre porque o mecanismo de execução do RM Reports é arquiteturado para considerar que StoredProcedures sempre deverão ser executadas antes de qualquer busca de dados atrelados à banda ao qual pertence àquele controle de StoredProcedure

Exemplificando

Para exemplificar, abaixo está demonstrado um relatório contendo 3 controles de StoredProcedure