Voltar

Por que eu devo ler este artigo:Neste artigo teremos uma visão da evolução de acesso a dados no Delphi. Faremos o desenvolvimento de um CRUD básico com FireDAC através de um cadastro que pode servir de modelo para a criação de todo um sistema.

Também teremos uma visão das características do FireDAC, seus principais componentes, o porquê que ele deve ser adotado para novos projetos com banco de dados e a razão de considerarmos a migração de sistemas existentes com outros mecanismos para o FireDAC. Aprenderemos algumas boas práticas para a confecção de interfaces e também dicas para o desenvolvimento de aplicações Client-Server.

Também veremos como utilizar um mesmo DataModule para aplicações VCL e FireMonkey. No fim, converteremos nosso formulário FireMonkey para o formato Metropolis UI, a plataforma gráfica do Windows 8.

O Delphi desde o seu surgimento em 1994 tem se caracterizado por ser a ferramenta mais produtiva para o desenvolvimento de aplicações com banco de dados. Devido ao seu estilo RAD e algumas classes muito bem projetadas como a TDataSet e o TField, fez com que se tornasse uma ferramenta praticamente imbatível nessa área.

Quando surgiu o Delphi, o principal conjunto de componentes de acesso a dados era o BDE (Borland Database Engine). Na versão do Delphi 6 surgiu a suíte de componente chamada de dbExpress, que até a versão XE2, era a principal engine de banco de dados no Delphi. Porém, a partir da versão XE3 surgiu o FireDAC, que trouxe uma grande evolução neste quesito.

Recomenda-se fortemente que novos projetos iniciados com o Delphi façam uso do FireDAC para o acesso a dados. O BDE e o dbExpress ainda estão presentes no conjunto de componentes do Delphi, porém, não serão mais evoluídos com a ferramenta.

CRUD

CRUD é o acrônimo para Create, Read, Update, Delete. Ou seja, são as quatro principais operações utilizadas nos bancos de dados relacionais. Representam respectivamente as instruções de Insert, Select, Update e Delete.

FireDAC

FireDAC é o nome dado a versão da Embarcadero após a aquisição da suíte AnyDAC, que foi integrada tanto ao Delphi quanto ao C++ Builder. No Delphi, o FireDAC está disponível a partir da versão XE3 através de um instalador a parte, já na versão XE5, a suíte encontra-se presente na instalação padrão.

Trata-se de um conjunto de componentes de alta performance e fácil utilização que provêm conexão com diferentes bancos de dados, tanto locais quanto corporativos. Cada banco de dados possui um driver e o FireDAC trabalha com cada um deles de forma diferente. Os drivers do FireDAC são nativos para cada banco em particular e ainda possuem integração aos tipos ODBC e dbExpress.

Para quem trabalha com a arquitetura multicamadas com Delphi e DataSnap (BOX 1), ou servidores REST (BOX 2), basta migrar a camada relativa ao Servidor de aplicações de dbExpress para FireDAC, pois, o componente TFDQuery é um TDataSet, portanto, é compatível com o TDataSetProvider. Na camada Cliente, o TClientDataSet permanece sem necessidade de qualquer alteração.

BOX 1. DataSnap

O DataSnap é o principal Framework para o desenvolvimento multicamadas no Delphi. Servidores de aplicação DataSnap podem ser desenvolvidos tanto em Delphi quanto em C++ Builder, porém, a grande vantagem está na aplicação Cliente, que pode ser desenvolvida em qualquer linguagem de programação que possua suporte à JSON. O Delphi 2009 trouxe uma grande mudança na arquitetura do DataSnap.

A partir desta versão a tecnologia COM foi abolida, mas algo tinha que substituí-la. Neste caso, como o Delphi já possuía uma tecnologia de acesso a dados muito eficiente, totalmente orientada a objetos e 100% escrita na própria linguagem, o dbExpress, a solução adotada foi criar um novo driver voltado ao DBX, no entanto, sua responsabilidade não seria a de se conectar a um banco de dados, mas sim, a um servidor de aplicação. Assim, a partir do Delphi 2009, a conexão do cliente com o servidor de aplicação passou a ser realizada utilizando o dbExpress trafegando os dados utilizando protocolo TCP/IP.

BOX 2. REST

REST é a abreviação de Representational State Transfer ou transferência de estado representacional. Teve seu surgimento a partir da tese de doutorado sobre a Web escrita por Roy Fielding, que foi um dos idealizadores do protocolo HTTP.

Alguns entendem que o REST é um novo protocolo, outros o chamam de arquitetura e alguns defendem que ele é apenas uma filosofia, uma forma de pensar, um estilo de projetar uma aplicação. O REST é uma boa prática, onde o principal objetivo é construir aplicações fracamente acopladas, voltadas principalmente para o ambiente Web.

O FireDAC é um framework que possui um conjunto de classes e componentes TDataSet, semelhante aos engines tradicionais do Delphi. Além disso, este possibilita o desenvolvimento de aplicações para múltiplos banco de dados de forma RAD, algo que o dbExpress tentou fazer, porém era complicado, afinal tínhamos de que fazer várias configurações como, por exemplo, o mapeamento de campos TFields de acordo com cada banco utilizado.

Uma das principais vantagens do FireDAC é a sua alta performance de acesso e a enorme quantidade de recursos e configurações disponíveis.

Os bancos de dados na qual conectam-se de forma nativa são os seguintes:

· MySQL

· Microsoft SQL Server

· Oracle Database

· InterBase

· PostgreSQL

· DataSnap

· SQLite

· Sybase SQL Anywhere

· Microsoft Access

· IBM DB2 Server

· Firebird

· Advantage Database

Características

· É possível elencar alguns itens que ganham destaque no FireDAC:

· Live Data - Tabelas que podem ser editadas em tempo real, útil para tabelas menores ou bancos de dados locais. Permite navegar em DataSets de modo bidirecional;

· Array DML - São Arrays de scripts. Podem ser feitos vários Inserts ...

Quer ler esse conteúdo completo? Tenha acesso completo