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

tyle="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #b3b3b3; PADDING-BOTTOM: 0cm; BORDER-LEFT: black 1pt solid; WIDTH: 62.7pt; PADDING-TOP: 0cm; BORDER-BOTTOM: black 1pt solid; mso-border-left-alt: solid black .5pt; mso-border-top-alt: solid black .5pt; mso-border-bottom-alt: solid black .5pt" vAlign=top width=84>

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.

 

Listagem 2. Comandos para criação de Triggers em diferentes banco de dados

Trigger para o SQL Server

-- Exclui a trigger caso ela já exista

If Object_id ('TR_IN_ITEM','TR') Is Not Null

   Drop Trigger TR_IN_ITEM

Go

Create Trigger TR_IN_ITEM

   On  ITEM

   After Insert

as

Declare

    @LTOTALITENS INT,

    @LNOTA INT

Begin

...

Quer ler esse conteúdo completo? Tenha acesso completo