Clique aqui para ler esse artigo em PDF.imagem_pdf.jpg

capnet43.jpg

Clique aqui para ler todos os artigos desta edição

 

Novidades do Firebird 1.5

 

Nos últimos meses o Firebird teve presença constante na mídia on-line: recentemente ficou em segundo lugar em uma pesquisa “Qual o seu banco de dados preferido?” realizada nos fóruns do site LinuxQuestions.org (http://www.linuxquestions.org/questions/showthread.php?s=&threadid=116360), com diferença de apenas 2 votos para o primeiro lugar, que acabou ficando com o MySQL. Os outros bancos que participaram da pesquisa foram o Postgres, Sybase, Berkeley DB, Oracle e DB2. A guerra de nomes promovida pelo Mozilla e pelo Firebird também contribuiu para colocar o banco de dados na mídia, e teve um final feliz com a mudança do nome do browser Mozilla Firebird para Mozilla FireFox, deixando o uso do nome Firebird livre para o banco de dados. O site da O’reilly, famosa editora de livros da área de informática, promoveu uma pesquisa sobre qual seria o banco de dados preferido dos seus visitantes e o Firebird/InterBase ficou em primeiro lugar. Tudo isso mostra que o Firebird está ampliando rapidamente seu espaço no disputado mundo dos SGDBs!

O lançamento da versão 1.5 promete manter o FB sob os olhares da mídia especializada por mais algum tempo. Essa versão é um marco na história do Firebird, pois é a primeira versão em que o banco dá sinais claros de independência do seu progenitor, o InterBase. Apesar da versão 1.0 ter apresentado várias características que já o diferenciavam do InterBase,  ela ainda mantinha uma vínculo muito forte com o IB, usando inclusive os mesmos nomes de arquivos, chaves de registro no Windows, etc.

O Firebird 1.5 começou a ser desenvolvido há vários meses atrás e deveria ser apenas uma versão de consolidação, apresentando pela primeira vez a base de código convertida de C para C++. No entanto, foram tantas as novidades incorporadas nessa versão que a tornam praticamente uma “major version”.

Nesse artigo estarei apresentando as principais novidades disponíveis no FB 1.5. A listagem completa de todos os recursos, alterações e correções de bugs pode ser encontrada no release notes do Firebird. O link para download do Release Notes em português do Brasil pode ser obtido em http://www.sqlmagazine.com.br/apostilas/Firebird1.5_RNBR.zip. As novidades apresentadas aqui são específicas do Firebird e não podem ser encontradas em nenhuma das versões do InterBase disponíveis no momento.

 

Nota - História

O Firebird é um banco gratuito e Open Source que teve sua origem no código do Borland InterBase 6.0. Após a liberação do código do IB 6.0 como um produto Open Source, a Borland decidiu lançar as versões posteriores do IB sob o modelo comercial (software fechado e pago). Inconformados com essa atitude, muitos usuários e pessoas envolvidas com o InterBase se juntaram e criaram o Firebird, com a determinação de dar continuidade à um banco de dados que fosse gratuito e com código aberto.

 

Novidades

Mudanças nos nomes dos arquivos

O Firebird 1.0 utilizava os mesmos nomes de arquivos que o seu progenitor, o InterBase. O Firebird 1.5 trouxe novos nomes para esses arquivos, marcando sua identidade nos mesmos. A tabela 1 mostra os principais arquivos renomeados. A lista completa está no release notes do FB 1.5.

 

Nome no FB 1.0

Nome no FB 1.5

Descrição

isc4.gdb

security.fdb

Banco de dados de segurança

ibserver.exe

fbserver.exe

Servidor Firebird

interbase.msg

firebird.msg

Mensagens de erro, etc.

interbase.log

firebird.log

Log do servidor e cliente

isc_config

firebird.conf

Arquivo de configurações do servidor no Linux

Ibconfig

firebird.conf

Arquivo de configurações do servidor no Windows

gds32.dll

fbclient.dll

Biblioteca cliente do Firebird no Windows

libgds.so

libfbclient.so / libfbembed.so

Biblioteca cliente do Firebird no Linux

Tabela 1. Arquivos renomeados no Firebird 1.5

Comandos CASE, COALESCE e NULLIF

O comando CASE permite retornar um valor baseado nas condições definidas. A introdução desse comando permitiu a implementação de duas outras funções: COALESCE e NULLIF. COALESCE retorna o primeiro valor não nulo de uma seqüência de valores passados como parâmetros. NULLIF recebe dois parâmetros de entrada e retorna NULL caso os valores dos 2 parâmetros sejam iguais; caso os valores sejam diferentes, o valor do primeiro parâmetro é retornado. Internamente COALESCE e NULLIF são convertidos em um CASE.

A listagem 1 mostra a utilização do CASE em um select para substituir o código utilizado no campo método_pagto (que representa o tipo de pagamento realizado em uma venda) pela sua respectiva descrição.

Na listagem 2 usamos a função coalesce para obter, em ordem de preferência, o nome fantasia de uma empresa, ou a razão social ou, caso nenhum desses esteja disponível, o string ‘Sem Nome’. A função nullif utilizada no update faz com que o campo estoque da tabela produtos fique nulo caso o valor atual dele seja 0.

 

SELECT v.Nota_Fiscal, v.total,

 CASE v.metodo_pagto

  WHEN 'V' THEN 'A vista'

  WHEN 'P' THEN 'Parcelado'

  WHEN 'C' THEN 'Cartão de crédito'

  WHEN 'D' THEN 'Cheque Pré-datado'

  ELSE 'Tipo desconhecido ''' || v.metodo_pagto || ''''

 END

FROM Vendas