Artigo Clube Delphi 75 - Aplicações MultiBanco

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
Confirmar voto
0
 (0)  (0)

Artigo da Revista Clube Delphi Edição 75.

Esse artigo faz parte da revista Clube Delphi Edição 75. Clique aqui para ler todos os artigos desta edição

imagem_pdf.jpg

Banco de dados

Aplicações multibanco

Adapte sua aplicação para funcionar com diferentes BDs, usando técnicas de desenvolvimento em camadas e POO

 

Toda software house, ao desenvolver seus produtos, tem que viabilizar seus softwares para serem adquiridos pelo número máximo possível de clientes, independente do SGBD que o cliente utilizar. O objetivo deste artigo é mostrar como desenvolver software nessas condições, escrevendo o código-fonte uma única vez, e que possa funcionar para diferentes SGBDs, como Oracle, SQL Server, Firebird e PostgreSQL.

Para tanto, é necessário resolver problemas de compatibilidade entre os diferentes SGBDs, como tipos de dados e funções. Também deve-se criar uma arquitetura incluindo uma camada de persistência, capaz de gerenciar adequadamente o acesso a dados.

 

Criação de tabelas

Todos os fornecedores de BDs se propõem a armazenar os principais tipos representáveis de dados em tabelas, sendo que alguns têm mais opções do que os outros. Quem trabalha com mais de um fornecedor, provavelmente já investiu um tempo para pesquisar as ferramentas CASE ou para modelagem de diagramas E-R. A maioria delas possui o recurso de traduzir o modelo especificado para os diferentes fornecedores de SGBD, respeitando as suas diferenças.

Para criar uma ferramenta desse tipo para a sua aplicação, você terá que em um primeiro momento delimitar quais os bancos de dados que pretende trabalhar, e realizar um estudo dos tipos compatíveis entre eles. Na Tabela 1 estão relacionados os tipos mais comuns em cada banco de dados e o equivalente nos outros SGBDs tratados neste artigo.

 

Tipo

Oracle

MS SQL Server

Firebird

PostgreSQL

Alfanumérico - tamanho variável

Varchar2

Varchar

Varchar

Varchar

Alfanumérico - tamanho fixo

Char

Char

Char

Char

Binário

Long Raw

Image

Blob

Bytea

Data/Hora

Date

DateTime

Date

Date

Inteiro

Int/Integer

Int

Integer

Int8

Numérico com Decimais

Number

Decimal

Decimal

Numeric

Texto

Long

Text

Varchar

Text

Tabela 1. Tipos de dados dos SGBDs

 

É importante considerar que além dos tipos de dados relacionados na Tabela 1, também existem tipos similares, que possuem funções específicas. Por exemplo: o tipo nvarchar no SQL Server também armazena valores alfanuméricos, porém usa a codificação Unicode, usada para representação de caracteres de línguas específicas como o japonês. Quanto à sintaxe da instrução Create, quando forem usadas as opções básicas da instrução, o comando é padrão para todos os bancos, conforme exemplo na Listagem 1.

 

Listagem 1. Instrução de criação de uma tabela (tipos do SQL Server)

Create Table Cliente

  (ID             Int Not Null,

   Codigo       Int Not Null,          

   Nome         Varchar(40) Not Null,

   Endereco    Varchar(40),

 Constraint PK_Cliente Primary Key(ID));

 

A manutenção das tabelas utiliza praticamente uma sintaxe padrão. Uma exceção são as versões anteriores do Oracle, que não permitem retirar um atributo da mesma, sendo necessário salvá-la em outra temporária, recriá-la sem o campo e restaurar as informações para a tabela original.

 

Triggers/Stored Procedures

A vantagem de se utilizar Triggers e Stored Procedures é que você consegue colocar as regras do negócio da aplicação no banco de dados, agilizando alguns procedimentos e, principalmente, protegendo a integridade dos dados independentemente do aplicativo que está acessando as informações. Entretanto a portabilidade da aplicação é inversamente proporcional ao uso dos mesmos.

As instruções SQL são padronizadas pelo padrão ANSI e por isso possuem uma boa similaridade entre os diversos fornecedores de SGBD, porém a linguagem empregada no desenvolvimento de Triggers e Stored Procedure não é controlada por nenhum padrão e cada fornecedor possui uma linguagem que geralmente é incompatível com os outros fornecedores.

Resumindo você terá que dar manutenção em tantas fontes quantos forem os bancos de dados onde a sua aplicação irá executar. Na Listagem 2 são apresentadas Triggers que fazem exatamente a mesma operação, porém observe a sintaxe utilizada por cada fornecedor (neste exemplo citei o Firebird e SQL Server, no endereço para download você encontra também o código para Oracle e PostgreSQL). Todas as Triggers controlam a inclusão de um item da nota fiscal, limitando a um máximo de 30 itens.

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?