sábado, 25 de junho de 2016

SQL - Select simples

Olá!

Com o início das postagens no blog Experiência SQL, começo também as postagens de demonstração da utilização de SQL no COBOL neste blog.

O modelo de tabela do banco de dados (DB) usado para esse post:

PESSOA
CD_PESSOANOMESOBRENOMEIDADE
1FelipeBarbosa23
2AnaVieira20
3JoãoSantos19
4AlineSilva21
5MairaDantas25

Então, temos acima a tabela denominada de PESSOA, com 4 campos: CD_PESSOA, NOME, SOBRENOME e IDADE. Contendo 5 registros. De modo que a chave (key - FK) desta tabela é o campo CD_PESSOA.

Assim, se for selecionado o nome de uma pessoa na tabela PESSOA para o código de pessoa igual a 1, deve ser retornado "Felipe".
Ou seja, em código SQL: SELECT NOME FROM PESSOA WHERE CD_PESSOA = 1.

Para que um código SQL seja compreendido em código COBOL, é necessário que o SQL esteja entre os comandos EXEC SQL e END-EXEC. Exemplo:

           EXEC SQL
               SELECT NOME
                 INTO :GDA-NM-PSS
                 FROM PESSOA
                WHERE CD_PESSOA = 1
           END-EXEC.

Onde, INTO :GDA-NM-PSS, é onde será armazenado o valor retornado pela execução do SQL.

Segue o exemplo do código de um programa COBOL com o SQL de exemplo apresentado.






A execução do código apresentado:
  1. Executa o SQL Select do NOME na tabela PESSOA para o registros que possua o CD_PESSOA = 1.
  2. Se o SQL for executado normalmente, o retorno será um registro, e o nome que foi selecionado será armazenado dentro da variável COBOL GDA-NM-PSS.
  3. Realiza um Evaluate do SQLCODE para verificar se a execução do comando SQL foi normal. Caso não tenha encontrado o registro para a condição (WHERE) ou tenha acontecido outro problema de execução é acionado o erro.
  4. Mostra a mensagem Nome cadastrado: valor-variável.
A resposta final da execução desse programa, é: Nome cadastrado: Felipe.

Observações:
  • Para que um programa COBOL execute as instruções SQL é necessário fazer a inclusão da biblioteca SQLCA. Para mais informações desta biblioteca clique aqui.
  • Para ver os campos que compõem a biblioteca SQLCA, clique aqui.
  • É uma boa pratica sempre após a execução de um EXEC SQL, realizar a verificação do SQLCODE, como forma verificar a execução da instrução SQL.
  • SQLCODE = +100, significa "que não há registros para a condição do SQL".
Então, para verificar se a execução de um comando SQL no COBOL ocorreu normalmente, veja se o SQLCODE está igual a ZERO, se não estiver é porque aconteceu uma exceção na execução do comando. Neste código a exceção de SQLCODE = +100 foi tratada para informar que não existe dados na base de dados para a condição do Select.

Como realizar um Select com a condição da instrução SQL recebendo um valor dinâmico? Veja no próximo post!


Para Ctrl + C do código acesse aqui.
Consultar a relação de Termos e Abreviaturas acesse aqui.


Até o próximo post!

Nenhum comentário:

Postar um comentário