Talvez você já saiba muito a respeito do Delphi, suas qualidades e o potencial excepcional desta ferramenta no desenvolvimento de aplicações Client-Server. O Delphi tem comunicação com diversas bases de dados, nativamente ou através de camadas intermediárias.
De início usava-se somente a BDE, que foi descontinuada. Nativamente, o Delphi começou a implementar suporte à banco de dados a partir de sua versão 4, com a Interbase Express, ou IBX, uma suíte de componentes que oferecia acesso ao Interbase, banco de dados da Borland. A partir daí surgiram alternativas, para suporte à bases de dados, Interbase ou não. Podemos destacar entre estas, a IBO (Interbase Objects), FreeIB+, Zeos DataBase Objects além da mais nova camada do Delphi a dbExpress.
Já a história do Firebird é um pouco diferente: Ele praticamente nasceu pronto, fruto da continuidade da versão open-source do Interbase 6. Com a decisão da Borland de tornar a fechar o código do Interbase para a versão 6.5, criou-se um “fork”, e com isto nasceu o Firebird, com o apoio dos criadores originais do Interbase. O projeto Firebird, muito mais do que simplesmente corrigir as falhas existentes no código do Interbase 6, propõe-se a continuar sua evolução, adicionando mais recursos, e principalmente continuar a ser open-source e livre.
Na versão 1.0 do Firebird, salvo pequenas exceções, o grau de compatibilidade das suítes de acesso ao Interbase é elevadíssimo, podendo-se trabalhar com a IBX, IBO, Zeos, FreeIB+ ou dbExpress. Porém esta compatibilidade tende a diminuir mais e mais, principalmente com o lançamento do Firebird 1.5, que se aproxima. Ficam então como alternativas as suítes cujos fabricantes se comprometeram a assegurar compatibilidade com o Firebird: IBO, FreeIB+ e ainda um driver para dbExpress da Upscene. O problema é que nenhum destes é open-source ou gratuito como o Firebird, o que pode colocar em jogo a decisão de utilizá-lo como base de dados.
Foi pensando nisto que se criou a MDO, que pretende ser uma saída para esta necessidade.
O que é o MDO (Mercury Data Objects)?
Uma biblioteca de componentes, de código fonte aberto, para acesso nativo ao Firebird, baseado nas bibliotecas FreeIBComponents e IBX 4.3.
A equipe de desenvolvimento do MDO preocupou-se em manter a compatibilidade com o IBX, biblioteca atualmente usada em larga escala, tornando assim a migração de projetos desenvolvidos com IBX para MDO muito simples. Tamanha é esta preocupação, que foi desenvolvida uma ferramenta automatizar esta migração.
A MDO está em sua versão Beta 0.8.1, e com uma versão Final prestes a ser lançada. O futuro do projeto é promissor, há intenção de portá-lo para o uso com o Kylix e até cogitações para implementar suporte ao Lazarus Project.
Para acompanhar o desenvolvimento ou ajudar no projeto existe uma lista de discussão do Grupo de Usuários do MDO, que pode ser acessado em:
http://sourceforge.net/mailarchive/forum.php?forum=mdo-group
e para fazer parte do grupo acesse:
http://lists.sourceforge.net/lists/listinfo/mdo-group
e faça seu cadastro. Ainda existe uma lista destinada exclusivamente para suporte técnico, então se precisa tirar alguma dúvida, acesse:
http://sourceforge.net/mailarchive/forum.php?forum=mdo-support
ou faça seu cadastro em:
http://lists.sourceforge.net/lists/listinfo/mdo-support. Para que se possa estar sempre atualizado com os fontes do MDO pode-se atualizar através do CVS no Source Forge, que hospeda o MDO, no endereço:
http://sourceforge.net/projects/mdo.
Conhecendo a paleta da MDO:
• TMDOCustomDataSet – Descendente direto da classe TDataset, implementa os métodos da classe ancestral;
• TMDODataSet – Descendente de TMDOCustomDataSet, que publica as propriedades do ancestral. Esse componente faz o trabalho do conjunto TMDOQuery + TMDOUpdateSQL, tendo SQL’s distintas para os métodos de Insert, Update, Delete e Refresh;
• TMDOQuery – Descendente de TMDOCustomDataSet que tem as mesmas funcionalidades de uma TQuery utilizada pelos acessos via BDE e com algumas melhorias adicionadas;
• TMDOUpdateSQL – Componente para utilização como o TUpdateSQL da paleta BDE, mas implementa uma SQL para refresh;
• TMDOStoredProc – Componente para execução de Stored Procedures existentes no Banco de Dados;
• TMDOSQL – Componente para execuções diretas, altamente recomendado para utilização em processamentos em massa.
• TMDODatabaseInfo – Componente para retornar informações sobre um determinado DataBase ou sobre o servidor do banco. Esse componente retorna informações muito úteis, como: Versão do servidor, page size, SQL Dialect, Usuários e muito mais;
• TMDOSQLMonitor – Componente para monitorar as instruções SQL enviadas e recebidas nas operações com o banco de dados;
• TMDOEvents – Componente que recebe as notificações de eventos disparados em Triggers e Stored Procedures armazenadas no Banco de Dados;
• TMDOExtract – Extrai metadados de uma Base de Dados que esteja ligada por um TMDODataBase;
• TMDOMisc – Componente para auxiliar com várias funções que retornam dados, executam comandos, executam contagem, média, somatórios, valores máximos/mínimos, retorna/ajusta valores de generators dentre outras funções;
• TMDOScript – Componente para a execução de Scripts, este componente pode ser utilizado para criação de bancos bem como para criar um sistema de atualização de Metadados;
• TMDOTable – Componente semelhante ao TTable do BDE, mas com algumas alterações básicas, incluindo a possibilidade de utilização de generator para resgatar valor de um generator e automaticamente adiciona-lo a um campo;
• TMDODatabase – Este componente é responsável pela conexão com o client do banco e faz toda a transferência de dados e comunicação; e
• TMDOTransaction – Componente responsável pelo isolamento transacional das operações realizadas na aplicação.
A Paleta Mercury Admin
Atualmente essa paleta é apresentada com mínimas alterações, que foram feitas a nível de Editor de Componentes e Editores de Propriedades.
• TMDOConfigService – Componente para executar configurações no servidor ou ajustar propriedades na Base de Dados
• TMDOBackupService – Componente para execução de Backup, o componente tem todas as opções que são disponibilizadas pelas API’s;
• TMDORestoreService – Componente para restauração de Backup executado pelo GBAK ou pela API do banco;
• TMDOValidationService – Componente para executar validações, incluindo todas as opções disponibilizadas pelo GFIX;
• TMDOStatisticalService – Retorna as estatísticas do Banco de Dados, de acordo com as opções pode-se restringir os resultados a somente algumas opções, como somente índices, ou com todas as opções;
• TMDOLogService – Componente para retornar o log do servidor Firebird;
• TMDOSecurityService – Componente para manutenção de usuários, disponibiliza formas para adicionar, excluir ou alterar usuários no servidor, e também retorna informações dos mesmos; e
• TMDOServerProperties – Retorna informações sobre o servidor, como informações de licença, Versão, entre outras.
Um pouco de História
O projeto MDO como tantos outros nasceu da união de esforços de desenvolvedores que apostam no Firebird como a base de dados confiável e de baixo custo para suas aplicações.
As conversas sobre seu início nasceram na lista de discussão da Comunidade Firebird de Língua Portuguesa, e formou-se uma equipe de desenvolvimento, para tratar do “caso”. Há analistas, programadores, testadores e até gente para opinar, afinal tudo é feito entre amigos.
Será motivo de grande satisfação e prova de reconhecimento do trabalho desta equipe voluntária, ver o projeto ser adotado e ter cada vez mais aplicações rodando com esta tecnologia. Junte-se ao grupo hoje mesmo!
Um exemplo de utilização do MDO
Primeiramente baixe a ultima versão do MDO no site: http://sourceforge.net/projects/mdo
Após o download do arquivo, descompacte-o em um diretório a sua escolha, C:\MDO, por exemplo, agora siga os passos abaixo:
1. Desinstale qualquer versão anterior do MDO, caso exista.
2. Apague todos os arquivos .BPL relacionados ao MDO já existente.
3. Abra o arquivo MDO_D5.BPG para a instalação no Delphi 5 ou MDO_D6.BPG para instalação no Delphi 6.
4. Na IDE do Delphi selecione:
| 5. Para Delphi 5, abra o package DCLMDO50.DPK, para Delphi 6 abra DCLMDO60.DPK, então clique em 6. Adicione o caminho onde o código fonte dos arquivos de runtime estão armazenados, como por exemplo: "C:\Mercury\source\runtime". Para isto, selecione: | , clique na aba então adicione em Lybrary Path.Pronto, agora que estamos com o MDO instalado, vamos criar um banco de dados utilizando um exemplo que vem com o MDO, apenas utilizaremos o exemplo para a criação do Banco.No Delphi, vá até File | Open Project , vá até a pasta que você descompactou o MDO, abra o Projeto em Samples\MDOSql\MDOIsql.dpr.Execute-o, pressionando F9, clique em Database | Criar. Observe a figura abaixo:Em Banco de Dados informe C:\BANCO.FB, como na figura abaixo:Clique em Ok, o banco já está criado e aberto.Vamos criar uma tabela, na qual usaremos em nosso exemplo do MDO, o Nome da Tabela será AGENDA, e terá os seguintes campos:Chave Nome do Campo Tipo Tamanho PK CODIGO INTEGER NOME VARCHAR 30 TELEFONE VARCHAR 15O comando para a criação da tabela é o seguinte:CREATE TABLE AGENDA(CODIGO INTEGER NOT NULL,NOME VARCHAR(30),TELEFONE VARCHAR(15),PRIMARY KEY(CODIGO));Basta digitá-lo no primeiro campo Memo e clicar em Executar, como abaixo:Após isso, a tabela AGENDA, já estará criada, para conferir, basta Executar o comando:SELECT CODIGO,NOME,TELEFONE FROM AGENDA;Você verá que a Tabela já existe, porém, não há nenhum registro.E pronto.Esperamos que este documento lhe seja útil para iniciar o seu trabalho com o MDO.Rodrigo CardosoJulio CésarHenrique MeiraPaulo Vazwww.comunidade-firebird.orgArtigo OriginalEquipa do MDOhttp://sourceforge.net/projects/mdoComunidade Firebird de Língua PortuguesaVisite a Comunidade em:http://www.comunidade-firebird.orgA Comunidade Firebird de Língua Portuguesa foi autorizada pelo Autor para divulgar este trabalho2004/03/12