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

 

Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML. 

 

Chaves primárias no DataSnap
Geração de PKs com independência do banco

 

O objetivo principal deste artigo é oferecer um mecanismo de criação de chaves primárias seqüenciais totalmente independente do servidor de banco de dados. Nosso foco será em aplicações DataSnap (caso deseje aprofundar-se nesse assunto, sugiro uma pesquisa nas edições 24 e 25 da revista ClubeDelphi, que trazem artigos apresentando os aspectos básicos da tecnologia e como desenvolver suas primeiras aplicações multicamadas usando DataSnap).

DataSnap

A arquitetura DataSnap está presente no Delphi desde a sua versão 3. Até a versão 5 ainda era conhecida como MIDAS. O principal objetivo do DataSnap é separar, em camadas ou níveis, as aplicações que anteriormente sofriam com a arquitetura cliente-servidor. Analisando o DataSnap podemos notar algumas vantagens:

Ø       Reaproveitamento de regras de negócio para vários tipos de interfaces gráficas (Windows/Linux, browsers, WAP etc.);

Ø       Distribuição e redistribuição facilitada;

Ø       Manutenção simplificada;

Ø       Separação entre interface (nos clientes), regras de negócio (objetos no lado do servidor), e banco de dados.

O problema

Geralmente os recursos de criação de chaves primárias (PKs) seqüenciais para as aplicações ficam a cargo do servidor de banco de dados. Mas imagine que você deseja uma aplicação que pode vir a utilizar vários bancos diferentes, dependendo do cliente. Por exemplo, um cliente pode estar usando Oracle, e outro Sybase – mas os dois bancos têm sistemas distintos de criação de PKs (Primary Keys).

Sendo assim, realmente esse é um caso para se resolver na camada intermediária (middleware). Nossa aplicação servidora será o local para a criação desse mecanismo. Abstraindo a responsabilidade do banco de dados, permitimos que a aplicação seja portada para outros bancos sem maiores problemas. ...

Quer ler esse conteúdo completo? Tenha acesso completo