Consultas SQL
Embora seja destinada somente às consultas, esta importante ferramenta é mais um grande recurso
disponível com exclusividade nos aplicativos RM, que permitirá a você cadastrar e executar sentenças de
Consulta SQL, acessando diretamente o Banco de Dados de seu aplicativo.
O que é uma sentença de consulta SQL?
Uma Consulta SQL é uma sentença (montada ou escrita) em linguagem própria para a realização de uma
pesquisa (consulta) diretamente no banco de dados, buscando informações (dados) que estejam
devidamente gravados (populados) nas diversas tabelas (cadastros) relativos ao sistema.
Exemplo
Deseja-se consultar as coligadas e seus respectivos dados existentes no banco de dados de determinado
aplicativo. Considere-se o nome da tabela com os dados desejados como sendo COLIGADAS. Para
realizarmos essa consulta, bastam alguns comandos bastante simples utilizados nos bancos de dados
padrão SQL. Neste caso, seria suficiente digitarmos:
SELECT * FROM GCOLIGADAS
O comando select determina ao sistema que se faça uma seleção ou a consulta em si;
O * (asterisco) neste caso foi utilizado como variável, permitindo que fossem selecionados todos os
dados existentes;
O comando FROM, determina a tabela na qual serão selecionados os dados, neste caso, a tabela de
Coligadas (GCOLIGADAS).
Entre as facilidades dessa opção, podemos citar as seguintes:
Possibilidade de você realizar suas próprias consultas de dados cadastrados em quaisquer tabelas do
aplicativo, efetuando a seleção mesmo de dados não disponíveis nas tabelas.
Disponibilidade de utilização do cadastro de fórmulas, que, ao serem associadas ao cadastro de
Consultas SQL, transformam-se em uma poderosa ferramenta com acesso direto e irrestrito à sua Base
de Dados.
Atenção
O módulo de consultas SQL não obedece as permissões de acesso a coligadas e também não obedece as
permissões de acessos a campos, ou seja, ao dar permissão a consulta SQL para um usuário o sistema
não segue as restrições de perfil e nem de usuário liberando assim acesso completo.
Editar Consulta SQL
Este recurso permite a edição, ou seja, alteração da Consulta SQL selecionada.
Campos:
Código
Digite um código alfanumérico para identificação da sentença. Este código tem finalidade exclusiva de
identificação da sentença, não produzindo qualquer alteração no resultado desejado.
Título
Informe uma descrição, um nome, ou um título que identifique mais facilmente a operação que deverá
ser executada.
Visível a todas Coligadas
Marque esta opção para que a consulta SQL fique disponível para todas as coligadas. Essas consultas
serão representadas com um globo em seu ícone.
Disponível para RM Portal
Disponibiliza o resultado da Consulta SQL no RM Portal.
Botão Configurar
O nome definido na Descrição será o alias para o campo, e terá resultado na visualização de consultas
SQL, no site do RM Portal.
Banco de Dados
Escolha uma conexão caso deseje fazer uma consulta SQL para um banco de dados externo.
Disponível para Execuções em Visões
Marque este campo caso queira que a sentença seja executada em visões.
Disponível para Filtros
Marque este campo caso queira que a sentença seja executada nos filtros.
Disponível para Relatórios
Marque este campo caso queira que a sentença seja executada nos relatórios.
Data da Última Alteração
Exibe a data e a hora da última alteração realizada na consulta.
Usuário Responsável
Exibe o último usuário que realizou alterações na consulta SQL que está sendo editada.
Dica
As consultas SQL podem executar de qualquer query do sistema utilizando constantes de valores do
contexto. Este campo pode ser por exemplo o Código da Coligada atual, Filial, Chapa, Projeto, Nível de
Ensino, etc.
A sintaxe da consulta SQL deverá ficar assim:
SELECT CAMPO_DA_BASE FROM TABELA_DA_BASE
WHERE CAMPO_DA_BASE = :$CONSTANTE_DO_CONTEXTO
Dica 2
O uso do “NOLOCK” nas consultas SQL melhora o desempenho e seu uso é incentivado principalmente
nas consultas de tabelas muito grandes. Este recurso é exclusivo para bases SQL Server.
Veja como usar o "NOLOCK" em uma consulta:
SELECT * FROM NOME_TABELA (NOLOCK);
Dica 3
É possível fazer log das sentenças SQL que estão sem NOLOCK, com “SELECT *” e/ou demorando demais
para rodar. Para habilitar o recurso, é necessário que o arquivo de configuração do host
([Link]) seja alterado e tenha incluído a chave "BadSyntaxLogEnabled" com o valor
verdadeiro.
Caso desejar alterar o tempo de execução da consulta que deve ser feito log, é necessário também
incluir a chave "QueryWaitTimeToLog" com o valor em segundos que a consulta deve demorar para
executar. Caso este parâmetro não for informado, apenas sentenças SQL que demorarem 30 segundos
ou mais terão seu log registrado.
Exemplo
<appSettings>
…
<add key="BadSyntaxLogEnabled" value="true" />
<add key="QueryWaitTimeToLog" value="10" />
…
</appSettings>
Configurações
Essa opção permite que seja destacada cada célula da coluna e que se possa executar uma Action a
partir da grid de execução da sentença SQL.
Cores nas células
Para processor a operação, selecione um campo na grid de campos e acesse a grid de configurações, no
campo OP. selecione a operação que deseja fazer com o resultado obtido no [Link] operações
podem ser >,<,<>,>=,<= ou =.
No campo valor deverá ser inserido um valor para fazer a comparação. Caso a comparação seja
verdadeira, a celula será preenchida com as cores que devem ser escolhidas nos campos Fundo e Fonte
dessa mesma Grid.
Actions
Para que uma Action seja executada , deve ser feita uma comparação entre o(s) campo(s) chave(s) da
tabela com o(s) campo(s) resultantes da consulta [Link] grid de Action deve ser inserida a Action que se
deseja abrir, na grid Campos da Chave Primária, onde são exibido os campos chaves da Action escolhida,
na coluna chamada de “Coluna”, deverá ser escolhido o campo resultante da consulta SQL que será
comparado com o da tabela.
Editor Consulta SQL
O editor permite a edição/alteração de uma consulta SQL. Para isto selecione os dados necessários nas
pastas desta janela:
Tabelas / Campos - Sentença
Nesta pasta serão informadas (selecionadas) as tabelas das quais os dados serão apurados para a
consulta. Das tabelas selecionadas serão definidos os campos que se deseja consultar no banco de
dados.
Corresponde ao comando SELECT de uma sentença SQL.
Deverão ser selecionadas as tabelas desejadas para a montagem e edição da sentença a ser executada.
Tabelas Disponíveis
Selecione a tabela entre as tabelas disponíveis, observando seu nome e sua respectiva descrição no
banco de dados. Clique sobre o botão Adiciona.
Após pressionar este botão, a tabela selecionada será transferida automaticamente para o espaço
abaixo Tabelas Selecionadas, para a montagem da sentença SQL. Ou, dê um duplo clique no nome da
tabela desejada.
Tabelas Selecionadas
Informa as tabelas que serão utilizadas na consulta SQL.
Campos Disponíveis
Uma vez selecionada(s) a(s) tabela(s), estarão também disponíveis os campos a serem pesquisados.
Selecione o campo entre os campos disponíveis, observando seu nome e sua respectiva descrição no
banco de dados. Clique sobre o botão Adiciona.
Após pressionar este botão, o campo selecionado será transferido automaticamente para o espaço
abaixo Campos Selecionados, para a montagem da sentença SQL. Ou, dê um duplo clique no nome do
campo desejado.
Observação
Para selecionar mais de um campo, mantenha a tecla CTRL pressionada ao selecionar os campos.
Campos Selecionados
Este espaço apresentará todos os campos já selecionados para a sentença. Da mesma forma como
ocorre com o espaço de Tabelas Selecionadas, poderá ser utilizado para que você digite cada campo
desejado para a sentença.
Observação
Para a inclusão de campos na área de Campos Selecionados, você poderá ou digitar cada campo
desejado, ou utilizar os mesmos passos informados para a seleção e transferência de tabelas.
Filtros / Condições - Sentença
Nesta pasta serão informados os critérios de seleção dos dados a consultar. Os filtros poderão classificar
previamente, datas, códigos, descrições ou outros dados que você desejar, conforme critérios definidos
nos filtros.
Corresponde aos comandos WHERE [CAMPO] =...; WHERE [CAMPO] >= ...; WHERE [CAMPO] > ..., etc, de
uma sentença SQL.
Opção para inclusão de campos-filtro para a seleção de dados da tabela.
Campos
Verifique neste espaço todos os campos da tabela disponíveis para serem utilizados como filtros de
dados. Selecione o campo entre os campos disponíveis, observando seu nome e sua respectiva função
no banco de dados.
Selecione cada campo desejado, clicando duas vezes sobre ele. O campo selecionado será transferido
automaticamente para o espaço à direita denominado Condições, para a montagem da sentença SQL. Os
campos deverão ser selecionados e transferidos já na seqüência correta de montagem da sentença.
Condições
Este espaço receberá os campos selecionados na coluna à esquerda para a montagem do filtro.
Entretanto, você poderá, se desejar, digitar o filtro independentemente de se ter selecionado
previamente os campos desejados.
Para utilizar o valor de uma fórmula no filtro, utilize FRM_Nome da fórmula na construção da sentença
SQL.
Exemplo
SELECT * FROM PFCOMPL WHERE CODPESSOA = :FRM_CODPESS
Agrupar / Ordenar - Sentença
Nesta seção, poderão ser definidas as formas de agrupamento de dados como, por exemplo, agrupar por
data, por código, etc.
Além do agrupamento, da mesma forma, os dados resultantes do processamento da sentença poderão
ser ordenados por data, código, ordem alfabética ou por outro critério que você definir.
Corresponde aos comandos ORDER BY ou GROUP BY de uma sentença SQL.
Recurso para o agrupamento e ordenação dos dados resultantes da execução da sentença.
Campos
Selecione os campos disponíveis nesta coluna para serem agrupados/ordenados.
Para selecionar e transferir um ou mais campos, proceda da seguinte forma:
Selecione o campo entre os campos disponíveis, observando seu nome e sua respectiva função no banco
de dados.
Clique sobre o ícone que representa uma seta única para a direita.
Após pressionar este ícone, o campo selecionado será transferido automaticamente para o espaço
abaixo Agrupar por ou no espaço abaixo Ordenar por , dependendo de qual seta for pressionada.
Observação
Para selecionar mais de um campo, mantenha a tecla CTRL pressionada ao selecionar os campos.
Agrupar por
Espaço que apresenta os campos selecionados para agrupamento dos dados da sentença. Poderá ser
também utilizado para que você digite cada campo ao invés de selecionar e transferir através das setas
de transferência.
O agrupamento consiste na junção de dados para serem apresentados em grupos, em bloco.
Ordenar por
Apresentam os campos de ordenação selecionados. Poderá ser utilizado também para a digitação dos
campos de agrupamento desejados, ao invés de se proceder a seleção e transferência através das setas
de transferência.
Variáveis dinâmicas
A consulta SQL permite o uso de variáveis dinâmicas que podem ser usadas como parâmetros. Essa
variáveis trazem dados de datas atuais ou dados sobre o contexto do sistema. Confira quais são elas:
Variáveis de Data
$Hoje: Compara com a data de Hoje.
$NaSemana: Compara se a data está entre o início e fim desta semana.
$NoMes: Compara se a data está entre o início e fim deste mês.
$NoAno: Compara se a data está entre o início e fim deste ano.
Variáveis de Contexto
$CHAPAFUNCIONARIO: chapa do funcionário logado.
$CODCOLIGADA: código da coligada do contexto.
$CODFILIAL: código da filial do contexto.
$CODIGOEXTERNO: código externo da filial do contexto.
$CODLOCPRT: código da localidade do portal do contexto.
$CODSISTEMA: código do sistema que o usuário está logado.
$CODTIPOCURSO: código do tipo de curso do contexto.
$CODUSUARIO: código do usuário logado.
$CODUNIDADEBIB: código da unidade bibliotecária do contexto.
$CODUSUARIOSERVICO: código do usuário rodando o serviço [Link]
$EDUTIPOUSR: código do tipo de usuário do Educacional.
$EXERCICIOFISCAL: código do exercício fiscal do contexto.
$IDPRJ: ID do projeto do contexto.
$RHTIPOUSR: tipo de usuário de RH do contexto.