FireDAC (AnyDAC) – O que isso representa para os desenvolvedores Delphi e C++

Recentemente a Embarcadero adquiriu o AnyDAC, conjunto de componentes para a acesso a banco de dados infinitamente superior ao dbExpress. Como resultado desta aquisição, o AnyDAC foi renomeado para FireDAC e acaba de se tornar parte do Delphi e C++Builder XE3, os usuários da edição Enterprise podem baixar o FireDAC gratuitamente, os usuários do Delphi Professional podem adquiri-lo por US$ 399.

Por muito tempo o até então AnyDAC permitiu aos desenvolvedores Delphi e C++ que usavam a edição Professional conectar a bancos de dados como Oracle, SQL Server, Sybase, Informix e outros, algo que até então somente era possível com as edições Enterprise e Architect.

Eu tenho muito o que dizer sobre o AnyDAC agora então FireDAC, no início do ano passado dediquei pelo menos 1 mês avaliando o então conhecido AnyDAC e agora vocês sabem o porque :).

Eu fiquei bem impressionado com a quantidade de recursos que o AnyDAC oferecia e a superioridade em relação ao dbExpress. FireDAC é tudo aquilo que o dbExpress tentou ser e nunca foi, eu digo isso porque FireDAC permite que você desenvolva aplicações para múltiplos bancos de dados de forma RAD, sem ter que fazer gambiarras e jeitinhos que eram necessários com o dbExpress, como por exemplo: re-mapeamento dos TFields quandos eles eram persistidos na aplicação, acesso a vários outros banco de dados, muito mais simples o desenvolvimento, acesso a recursos específicos de cada banco e muito mais. Abaixo uma lista com alguns recursos suportados pelo FireDAC.

  • Para todos os bancos de dados
    • Recuperação automática da conexão com o banco
    • Suporte unificad a eventos do banco de dados
    • Arquitetura simplificada, isso quer dizer que você não precisará mais colocar 3 componentes (Query + ClientDataSet + Provider) para simplesmente ter um cursor bi-direcional
    • Performance muito superior ao dbExpress
    • TADMemTable – dataset em memória e mais rápido que o TClientDataSet
    • Muito mais fácil migrar aplicações que ainda usam BDE para FireDAC, o que era mais trabalhoso quando se tentava migrar para dbExpress
  • Oracle
    • SELECT FOR UPDATE – não precisar mais de gambiarras como forçar UPDATE para travar um registro
    • Abortar execução de Query – quem não precisa disso?
    • Suporte a colunas ROWID – facilita e torna mais rápida a edição e refresh de dados
    • Suporte a RETURNING clause para refresh mais rápido dos dados – você não precisa mais fazer um novo select para obter o valor de um campo que foi atualizado por uma trigger
    • e muito mais…
  • Firebird
    • Suporte a RETURNING clause para refresh mais rápido dos dados
    • Trusted authentication
    • Suporte a serviços do banco de dados – backup, restore, validate, security, etc
    • Abortar execução de Query
  • PostgreSQL
    • Isso mesmo, agora suporte nativo a PostgreSQL
    • e muito mais…
  • SQL Server
    • Suporte a execução de comandos batch que retornam múltiplos result sets – Batch commands with multiple result sets
    • Abortar execução de Query
    • e muito mais
  • MySQL
    • Suporte a colunas AUTO_INCREMENT e retorno do último valor inserido
  • Drivers para vários bancos de dados compatíveis com Windows, Mac e iOS

Essa é uma pequena lista do que o FireDAC oferece, você pode saber mais sobre outros recursos do FireDAC, acessando a lista de recursos do AnyDAC através deste link.

FireDAC é sem dúvida uma solução melhor, sem dúvida vale a pena migrar suas aplicações de BDE ou dbExpress para FireDAC, muito recursos que os desenvolvedores Delphi e C++ vinham pedindo por muito tempo, estão agora presentes no FireDAC.

Claro que todos estão perguntando “O que irá acontecer com o dbExpress?”, o BDE morreu mas continua sendo usado nos dia de hoje:), o dbExpress ainda não está morto e acho que irá levar um tempo para que a Embarcadero oficialmente deixe de suporta-lo, entretanto não há porque manter duas tecnologias de acesso a banco de dados no Delphi, como eu já disse FireDAC é muito superior ao dbExpress, assim sendo o futuro é FireDAC.

35 respostas
    • Andreano Lanusse
      Andreano Lanusse says:

      FireDac suporta DataSnap, além disso DataSnap é uma tecnologia separada que funciona.

      Para aqueles que tem aplicações DataSnap e quiserem usar FireDac, basicamente você terá que mudar sua camada server.

      Responder
      • Getulio Strapazzon
        Getulio Strapazzon says:

        Olá Andreano.
        A algum tempo venho buscando respostas e estudando o Firedac para seu uso em aplicações 3 camadas.

        Tem alguma dica? Quais são essas alterações? O cliente permanece a conexão DBX<- ProviderConnectionClient <-Dataset?

        Responder
    • Marcos
      Marcos says:

      Acreditar nos empregados da empresa sobre a eficiência do produto sem ao menos testar é inocência completa. A Borland/CodeGear/Embarcadero empurrou como solução RaveReports, Intraweb e outras ferramentas que comprovaram ser infinitamente ruins. Hoje, somente após longos testes é que atualizo uma versão Delphi, porque a maioria dos recursos e ferramentas que surgem no upgrade não valem o preço.

      Responder
  1. Rafael Wolf
    Rafael Wolf says:

    Realmente Andreano, depois do lançamento, fiz download na empresa onde trabalho, instalei e estudei um pouco sobre o AnyDAC (FireDAC), o que vi até agora é como você disse, infinitamente melhor que o dbExpress, recursos impressionantes, show de bola!

    Responder
  2. Lindemberg Cortez
    Lindemberg Cortez says:

    Eu pensei que o DBExpress muito mais que “conjunto de componentes para a acesso a banco de dados” …. o DBexpress não é Framework ? e quanto a persistencia de objetos no FireDAC ? e quanto a execuçãod e metodos integrado ? e quanto ao suporte a datasnap que existe no DBExpress? olhe olhe, no mundo existe a lei do ganha e perde… nunca ganha ganha.

    Responder
  3. Júlio César M. Ferreira
    Júlio César M. Ferreira says:

    Andreano.

    Acho o assunto sobre o AnyDAC/FireDAC muito interessante. Mas para todos aqueles que migraram do BDE para o dbExpress e embarcaram na tecnologia Datasnap, como fica o esforço ($$) aplicado na empreitada?

    E como fica a compatibilidade do novo FireDAC com o Datasnap? O nível de mudanças que será necessário realizar? A Embarcadero irá disponibilizar suporte para esse tipo de situação?

    Responder
  4. Francis Silva
    Francis Silva says:

    Estou testando o FIREDAC com o PostgreSQL e senti infinitamente a falta de um parâmetro de conexão que havia no dbExpress e até em suites de terceiros como o UNIDAC, chamado “SchemaName” que me permitia trocar o search path default dos schemas do PostgreSQL. Eu tenho dois servidores que rodam em paralelo, um servidor PostgreSQL e outro Oracle. No servidor PostgreSQL as tabelas estão no esquema “X” e no servidor Oracle as mesmas tabelas estão no esquema “Y”. No dbExpress eu informava na conexão PostgreSQL o “SchemaName=public, Y” e trabalhava com as querys sem prefixar o nome das tabelas com o esquema. Com o Firedac não consigo mais fazer isso, tenho que prefixar as tabelas com o nome do esquema e com isso a mesma query não roda nos dois bancos de dados sem modificações.

    Responder
  5. Pablo E. Vigneaux Wilton
    Pablo E. Vigneaux Wilton says:

    Eu já conhecia o AnyDAC (e outras ferramentas da “DA-Soft”) e em muitos pontos, assim como outros componentes, parecia superior ao dbExpress. A “velha” discussão sobre o que fazer quando a ferramenta ou parte desta muda, e de quem é a culpa… não leva a nada. As ferramentas mudam, o métodos mudam e até o S.O. muda (lembrem que até sistemas do MS deixam de funcionar na mudança de versão). O problema talvez seja mais cultural, já que se o projeto é dividido em camadas, encapsulamos e eliminamos acesso direto a componentes, eliminamos uma dependência bizarra, intrincada e espalhada pelos nossos sistemas. A metodologia empregada por nos não é culpa do fornecedor, é uma escolha nossa tanto para a qualidade do software, facilidade de manutenção e agilidade na atualização tecnológica. Abs.

    Responder
  6. Luiz
    Luiz says:

    Já conhecia os componentes da DA-Soft também. São muito superiores ao dbExpress e tinham preço bem acessíveis. Me preocupa a Embarcadero sair comprando ferramentas de terceiro e cobrar por elas, acho se o objetivo fosse melhorar o produto, elas deveriam vir com ele.

    Responder
  7. Marcelo Jaloto
    Marcelo Jaloto says:

    Andreano, muito bom o artigo. Era tudo que precisava ouvir porque na apresentação oficial do FireDAC nenhuma comparação foi feita com o dbExpress. Será por que? 🙂 hehehe

    Responder
  8. João Elson
    João Elson says:

    Quando resolvi migrar a forma de conexão com o banco, verifiquei dois conjunto de componentes de duas empresas. da-soft com Anydac e Devart com UNIDAC.
    Optei pelo UNIDAC por apenas questão de gosto. Analisando os dois, verifiquei que são poucas as diferenças de configuração. A velocidade é a mesma e etc.
    O que me fez escolher o UNIDAC foi o modo que trabalha com as instruções SQL. Você pode trabalhar com cada instrução de forma personalizada ou pode usar o modo convencional. O suporte também é muito bom.

    Responder
  9. Fellipe Henrique
    Fellipe Henrique says:

    Quanto ao DataSnap, se eu passar a usar o FireDAC, eu continuarei usando o Indy como plataforma de conexão!? Digo isso, porque o problema do DataSnap está aí, no Indy, que por sinal é uma porcaria de suite.

    Responder
  10. Glayson Junio
    Glayson Junio says:

    Ta de parabéns pelo artigo, muito bom mesmo, posta um artigo com o FireDAC acessando MsSqlServer e Oracle no mesmo aplicativo, e me responda tb, se seria possível obtenção de metadata dos bancos de dados…

    Responder
  11. Valdeir Soares
    Valdeir Soares says:

    Quando você irá publicar um post mostrando a utilização do FireDAC e mostrando o que precisamos enviar para os clientes depois da aplicação feita?

    Responder
  12. Fabricio
    Fabricio says:

    Andreano, parabéns pelo artigo, aliás, você saberia nos dizer onde poderíamos adquirir o FireDAC por US$ 399,00 como foi citado? A Embarcadero do Brasil tá enfiando a faca.

    Responder
    • Andreano Lanusse
      Andreano Lanusse says:

      Obrigado Fabricio.

      Ai no Brasil esta é a única opção, você poderia falar direto com a Embarcadero aqui nos EUA e tentar algo.

      Responder
  13. Marcos
    Marcos says:

    Olá Andreano.

    Estou trabalhando com o FireDAC e gostei muito da performance do componente, além de ser muito fácil de usar.
    Estou enfrentando um problema e talvez você saiba o que pode estar acontecendo.
    Quando utilizo no componente ADConnection, em Options > Update Options > Locking > Lock Mode: Pessimistic e Lock Point: Immediate, não consigo gravar nada nas tabelas detalhes onde possui relacionamento Master – Detail. Se tentar mais de uma vez, ele retorna erro dizendo que a PK já existe e não pode ser utilizada. Isso acontece somente utilizando este tipo de travamento de registro. Se sabe me dizer o porque isso acontece?

    Uma dúvida que tenho, este componente tem recurso pra atualizar terminal na rede se caso alguma máquina conectada no mesmo banco inserir, deletar ou atualizar algum dado? Como vi essa opção de travamento, achei que pudesse ter algo pra fazer essa atualização tbm.

    Grato.

    Responder
    • Andreano Lanusse
      Andreano Lanusse says:

      @Fernando você pode baixar a versão atual do FireDAC e através de linha de comando usar em versões anteriores ao XE4, não estou seguro se Delphi 2007 é suportado.

      Responder
  14. Douglas
    Douglas says:

    Voltei a usar o Delphi a 2 meses. Migrei para .NET em 2006, mas a Microsoft tá despirocada de vez. Não sabe pra onde vai.

    Coincidência ou não o Delphi vai pro mesmo caminho e os envolvidos continuam os mesmo. Vendedores de sonho…. e quem usa vai
    gastando tempo e dinheiro para não perder o que já fez.

    Pelo menos largaram o Java e agora precisam largar o C e se dedicar ao Pascal que a maioria usa.

    Tecnologia usa a essência do Markteting. Produtos recicláveis e inováveis a todo tempo para que as pessoas vivam recomprando…

    Vamos evoluir para a nova DROGA do momento.

    Responder
  15. Ezequiel
    Ezequiel says:

    Vi e gostei do FireDac.

    Mais fácil migrar as Aplicações do BDE para FireDAC do que para DBExpress que nem cheguei a usar direito.
    Para Migrar do DBExpress para FireDac mais difícil do que o BDE para FireDac.

    Responder

Trackbacks & Pingbacks

  1. […] Obviamente a Embarcadero irá promover o FireDAC como um novo recurso do XE4, mesmo que ele tenha sido lançado no XE3. Como faz pouco tempo é um bom recurso pra ser divulgar, mesmo porque FireDAC é muito melhor que dbExpress. Eu escrevi um artigo sobre o FireDAC e você pode ler aqui. […]

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *


This site uses Akismet to reduce spam. Learn how your comment data is processed.