DevMedia
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login

IF-THEN-ELSE, BEGIN-END, COMENTARIOS no Firebird

Veja nesta Quick como utilizar IF-THEN-ELSE, BEGIN-END, COMENTARIOS no Firebird.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você poderia comentar o que não lhe agradou?

Confirmo meu voto negativo

Em qualquer linguagem de programação ou até mesmo banco de dados, temos sempre aqueles comentários para nos fazem lembrar de alguma instrução ou dica que iremos precisar mais tarde. Porém, sabemos que abusar não é o ideal e há, inclusive, livros, artigos e videoaulas que falam sobre código limpo.

Temos um bom artigo que fala sobre código limpo. Para saber mais, clique aqui.

Neste artigo veremos os tipos de comentários que existem no Firebird: comentários de uma linha ou de bloco de código (ou várias linhas), além de blocos de begin-end, que servem para agrupar e amarrar determinados blocos do nosso código numa instrução, loop ou similares. Sempre precisamos armazenar conteúdo em algum espaço na memória e, para isso, usamos a famosa atribuição. Por último, mas não menos importante, veremos a instrução de decisão IF-THEN-ELSE usada para tomada de decisão.

A linguagem que utilizamos em Stored Procedure e Trigger possui todas as instruções que temos em linguagem de programação, assim como Delphi, Java, C#, entre outras. Vejamos estas comparações a seguir.

Comentários

Como o próprio nome já diz, um comentário é um lembrete ou uma forma de documentar uma Stored Procedure, Trigger ou um trecho de código. O mesmo é ignorado e não compilado, portanto, podemos escrever qualquer informação em um comentário, como mostra a sintaxe a seguir:

  
/* Este é um exemplo de comentário em Firebird 
    Podemos incluir quantas linhas forem necessárias*/
    SELECT NOME, SEXO, IDADE, CPF, RG 
    FROM CLIENTE
    WHERE IDCLIENTE = 1
    
   
    -- Este comentário funciona apenas para uma linha
    SELECT NOME, SEXO, IDADE, CPF, RG 
    FROM CLIENTE
    WHERE IDCLIENTE = 1

BEGIN-END

Esta linguagem utilizada na Stored Procedure e no Trigger é bem parecida com o Pascal, em alguns aspectos como While, Begin e End, IF-THEN-ELSE, por exemplo.

Assim como em Pascal, a utilização de BEGIN e END indica um agrupamento de linha de códigos. Quando desejamos que uma instrução fiquei agrupada/amarrada em uma condição ou loop, usamos a sintaxe abaixo:

    BEGIN 
   IF (state_code = 'CA') THEN state_name = 'California';
   ELSE IF (state_code = 'UT') THEN state_name = 'Utah'; 
   ELSE state_name = 'unknown'; 
  END 

Atribuição

A linguagem das Stored Procedure dos Trigger permite também comandos de atribuição: podemos utilizar variáveis locais ou parâmetros de entrada para efetuarmos o cálculo. Podem também ser complexas, assim como nas linguagens de programação, não tendo restrições de complexidade. Veja a sintaxe a seguir:

 Valor1 := (Valor2 * Valor3) / 2;
    NomeComposto := Nome + sobrenome;

IF-THEN-ELSE

Além de tudo que já vimos para Stored Procedure e Trigger, temos também os comandos IF-THEN-ELSE que servem para nos ajudar nas tomadas de decisões. Eles podem ser simples ou encadeados, assim como em qualquer linguagem de programação. Veja a sintaxe:

  IF (VariavelNome = 'DEVMEDIA')
    THEN VariavelNome = 'www.devmedia.com.br';
    ELSE VariavelNome = 'www.google.com.br';  
  IF (VariavelNome <> 'DEVMEDIA')
    THEN VariavelNome = 'www.google.com.br';
    ELSE VariavelNome = 'www.devmedia.com.br';  

Podemos ainda utilizar bloco de BEGIN-END, além de expressões como=, <, >, <=, >=, <>, ajudando assim a montar expressões mais complexas.

Temos diversas outras variações a serem utilizadas com o bloco IF-THEN-ELSE. Veja alguma delas:

  • Valor LIKE valor:O valor à direita pode incluir um ou mais curingas. Use % para zero ou mais caracteres e _ para um caractere;
  • Valor IN (valor1, valor2, valor3, &): Membro de uma lista de valores;
  • Valor EXISTS (subquery): Verdadeiro se o valor combinar com um dos valores retornados pela subquery;
  • Valor ANY (subquery): Verdadeiro se o valor combinar com qualquer das linhas retornadas pela subquery;
  • Valor ALL (subquery): Verdadeiro se o valor combinar com todas as linhas retornadas pela subquery;
  • Valor IS NULL: Verdadeiro se o valor for nulo;
  • Valor IS NOT NULL: Verdadeiro se o valor não for nulo;
  • Valor CONTAINING valor: Busca de substring sem diferenciar maiúsculas e minúsculas;
  • Valor STARTING WITH valor:Verdadeiro se o valor a esquerda iniciar com o valor a direita. Diferencia maiúsculas e minúsculas.

Veja um exemplo:

IF
    (any_sales > 0) THEN
    BEGIN
    EXCEPTION reassign_sales;
    SUSPEND;
    END
    IF
    (first IS NOT NULL) THEN
    line2=first || ' ' || last;
    ELSE
    line2=last;

Existem muitas outras funcionalidades, recursos e comandos para se trabalhar com Stored Procedure e Trigger, não se limitam apenas a um único artigo. Podemos ver dois cursos bem completos em Dominando o Firebird e InterBase e Dominando o Firebird.

Um abraço!



Atuou como desenvolvedor/consultor há mais de 9 anos. Liderou, como projetista/analista, diversos importantes projetos de TI na Marinha do Brasil. Atualmente é coordenador editorial da web-03, incluindo os sites DevMedia, JavaFree [...]

O que você achou deste post?
Conhece a assinatura MVP?
Publicidade
Serviços

Mais posts