{"id":4257,"date":"2013-03-02T20:50:32","date_gmt":"2013-03-03T04:50:32","guid":{"rendered":"http:\/\/www.andreanolanusse.com\/pt\/?p=4257"},"modified":"2018-12-18T08:05:44","modified_gmt":"2018-12-18T16:05:44","slug":"firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c","status":"publish","type":"post","link":"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/","title":{"rendered":"FireDAC (AnyDAC) &#8211; O que isso representa para os desenvolvedores Delphi e C++"},"content":{"rendered":"<p>Recentemente a Embarcadero adquiriu o AnyDAC, conjunto de componentes para a acesso a banco de dados infinitamente superior ao dbExpress. Como resultado desta aquisi\u00e7\u00e3o, o AnyDAC foi renomeado para FireDAC e acaba de se tornar parte do Delphi e C++Builder XE3,\u00a0os usu\u00e1rios da edi\u00e7\u00e3o Enterprise podem baixar o FireDAC <a href=\"http:\/\/cc.embarcadero.com\/item\/29318\" target=\"_blank\">gratuitamente<\/a>, os usu\u00e1rios do Delphi Professional podem adquiri-lo por US$ 399.<\/p>\n<p>Por muito tempo o at\u00e9 ent\u00e3o AnyDAC permitiu aos desenvolvedores Delphi e C++ que usavam a edi\u00e7\u00e3o Professional conectar a bancos de dados como Oracle, SQL Server, Sybase, Informix e outros, algo que at\u00e9 ent\u00e3o somente era poss\u00edvel com as edi\u00e7\u00f5es Enterprise e Architect.<\/p>\n<p>Eu tenho muito o que dizer sobre o AnyDAC agora ent\u00e3o FireDAC, no in\u00edcio do ano passado dediquei pelo menos 1 m\u00eas avaliando o ent\u00e3o conhecido AnyDAC e agora voc\u00eas sabem o porque :).<\/p>\n<p>Eu fiquei bem impressionado com a quantidade de recursos que o AnyDAC oferecia e a superioridade em rela\u00e7\u00e3o ao dbExpress.\u00a0FireDAC \u00e9 tudo aquilo que o dbExpress tentou ser e nunca foi, eu digo isso porque FireDAC permite que voc\u00ea desenvolva aplica\u00e7\u00f5es para m\u00faltiplos bancos de dados de forma RAD, sem ter que fazer gambiarras e jeitinhos que eram necess\u00e1rios com o dbExpress, como por exemplo: re-mapeamento dos TFields quandos eles eram persistidos\u00a0na aplica\u00e7\u00e3o, acesso a v\u00e1rios outros banco de dados, muito mais simples o desenvolvimento, acesso a recursos espec\u00edficos de cada banco e muito mais. Abaixo uma lista com alguns recursos suportados pelo FireDAC.<\/p>\n<ul>\n<li>Para todos os bancos de dados\n<ul>\n<li>Recupera\u00e7\u00e3o autom\u00e1tica da conex\u00e3o com o banco<\/li>\n<li>Suporte unificad a eventos do banco de dados<\/li>\n<li>Arquitetura simplificada, isso quer dizer que voc\u00ea n\u00e3o precisar\u00e1 mais colocar 3 componentes (Query + ClientDataSet + Provider) para simplesmente ter um cursor bi-direcional<\/li>\n<li>Performance muito superior ao dbExpress<\/li>\n<li>TADMemTable &#8211; dataset em mem\u00f3ria e mais r\u00e1pido que o TClientDataSet<\/li>\n<li>Muito mais f\u00e1cil migrar aplica\u00e7\u00f5es que ainda usam BDE para FireDAC, o que era mais trabalhoso quando se tentava migrar para dbExpress<\/li>\n<\/ul>\n<\/li>\n<li>Oracle\n<ul>\n<li>SELECT FOR UPDATE &#8211; n\u00e3o precisar mais de gambiarras como for\u00e7ar UPDATE para travar um registro<\/li>\n<li>Abortar execu\u00e7\u00e3o de Query &#8211; quem n\u00e3o precisa disso?<\/li>\n<li>Suporte a colunas ROWID &#8211; facilita e torna mais r\u00e1pida a edi\u00e7\u00e3o e refresh de dados<\/li>\n<li>Suporte a RETURNING clause para refresh mais r\u00e1pido dos dados &#8211; voc\u00ea n\u00e3o precisa mais fazer um novo select para obter o valor de um campo que foi atualizado por uma trigger<\/li>\n<li>e muito mais&#8230;<\/li>\n<\/ul>\n<\/li>\n<li>Firebird\n<ul>\n<li>Suporte a RETURNING clause para refresh mais r\u00e1pido dos dados<\/li>\n<li>Trusted authentication<\/li>\n<li>Suporte a servi\u00e7os do banco de dados &#8211; backup, restore, validate, security, etc<\/li>\n<li>Abortar execu\u00e7\u00e3o de Query<\/li>\n<\/ul>\n<\/li>\n<li>PostgreSQL\n<ul>\n<li>Isso mesmo, agora suporte nativo a PostgreSQL<\/li>\n<li>e muito mais&#8230;<\/li>\n<\/ul>\n<\/li>\n<li>SQL Server\n<ul>\n<li>Suporte a execu\u00e7\u00e3o de comandos <em>batch<\/em> que retornam m\u00faltiplos result sets &#8211;\u00a0Batch commands with multiple result sets<\/li>\n<li>Abortar execu\u00e7\u00e3o de Query<\/li>\n<li>e muito mais<\/li>\n<\/ul>\n<\/li>\n<li>MySQL\n<ul>\n<li>Suporte a colunas AUTO_INCREMENT e retorno do \u00faltimo valor inserido<\/li>\n<\/ul>\n<\/li>\n<li>Drivers para v\u00e1rios bancos de dados compat\u00edveis com Windows, Mac e iOS<\/li>\n<\/ul>\n<p>Essa \u00e9 uma pequena lista do que o FireDAC oferece, voc\u00ea pode saber mais sobre outros recursos do FireDAC, acessando a lista de recursos do AnyDAC atrav\u00e9s deste\u00a0<strong><a href=\"http:\/\/www.da-soft.com\/anydac\/personalized-api.html\">link<\/a><\/strong>.<\/p>\n<p>FireDAC \u00e9 sem d\u00favida uma solu\u00e7\u00e3o melhor, sem d\u00favida vale a pena migrar suas aplica\u00e7\u00f5es de BDE ou dbExpress para FireDAC, muito recursos que os desenvolvedores Delphi e C++ vinham pedindo por muito tempo, est\u00e3o agora presentes no FireDAC.<\/p>\n<p>Claro que todos est\u00e3o perguntando &#8220;O que ir\u00e1 acontecer com o dbExpress?&#8221;, o BDE morreu mas continua sendo usado nos dia de hoje:), o dbExpress ainda n\u00e3o est\u00e1 morto e acho que ir\u00e1 levar um tempo para que a Embarcadero oficialmente deixe de suporta-lo, entretanto n\u00e3o h\u00e1 porque manter duas tecnologias de acesso a banco de dados no Delphi, como eu j\u00e1 disse FireDAC \u00e9 muito superior ao dbExpress, assim sendo o futuro \u00e9 FireDAC.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recentemente a Embarcadero adquiriu o AnyDAC, conjunto de componentes para a acesso a banco de dados infinitamente superior ao dbExpress. Como resultado desta aquisi\u00e7\u00e3o, o AnyDAC foi renomeado para FireDAC e acaba de se tornar parte do Delphi e C++Builder XE3,\u00a0os usu\u00e1rios da edi\u00e7\u00e3o Enterprise podem baixar o FireDAC gratuitamente, os usu\u00e1rios do Delphi Professional [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4258,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_s2mail":"yes","footnotes":""},"categories":[16,102],"tags":[173,181],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>FireDAC (AnyDAC) - O que isso representa para os desenvolvedores Delphi e C++ | Andreano Lanusse | Tecnologia e Desenvolvimento de Software<\/title>\n<meta name=\"description\" content=\"AnyDAC se tornou FireDAC e neste artigo voc\u00ea pode conhecer um pouco mais desta nova tecnologia de acesso a dados do Delphi e C++, superior ao dbExpress.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"FireDAC (AnyDAC) - O que isso representa para os desenvolvedores Delphi e C++ | Andreano Lanusse | Tecnologia e Desenvolvimento de Software\" \/>\n<meta property=\"og:description\" content=\"AnyDAC se tornou FireDAC e neste artigo voc\u00ea pode conhecer um pouco mais desta nova tecnologia de acesso a dados do Delphi e C++, superior ao dbExpress.\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Andreano Lanusse | Tecnologia e Desenvolvimento de Software\" \/>\n<meta property=\"article:published_time\" content=\"2013-03-03T04:50:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-12-18T16:05:44+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2011\/09\/FireDAC_logo02_193x175.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"193\" \/>\n\t<meta property=\"og:image:height\" content=\"175\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@andreanolanusse\" \/>\n<meta name=\"twitter:site\" content=\"@andreanolanusse\" \/>\n<meta name=\"twitter:label1\" content=\"Est. tempo de leitura\">\n\t<meta name=\"twitter:data1\" content=\"3 minutos\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#website\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/\",\"name\":\"Andreano Lanusse | Tecnologia e Desenvolvimento de Software\",\"description\":\"Andreano Lanusse blog - artigos, tutoriais e v&iacute;deos sobre tecnologia, desenvolvimento de software (Delphi XE4, C#, PHP, .NET) e t&eacute;cnicas de programa&ccedil;&atilde;o\",\"publisher\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"http:\/\/www.andreanolanusse.com\/pt\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/#primaryimage\",\"inLanguage\":\"pt-BR\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2011\/09\/FireDAC_logo02_193x175.jpg\",\"contentUrl\":\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2011\/09\/FireDAC_logo02_193x175.jpg\",\"width\":193,\"height\":175},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/#webpage\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/\",\"name\":\"FireDAC (AnyDAC) - O que isso representa para os desenvolvedores Delphi e C++ | Andreano Lanusse | Tecnologia e Desenvolvimento de Software\",\"isPartOf\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/#primaryimage\"},\"datePublished\":\"2013-03-03T04:50:32+00:00\",\"dateModified\":\"2018-12-18T16:05:44+00:00\",\"description\":\"AnyDAC se tornou FireDAC e neste artigo voc\\u00ea pode conhecer um pouco mais desta nova tecnologia de acesso a dados do Delphi e C++, superior ao dbExpress.\",\"breadcrumb\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/\",\"name\":\"In\\u00edcio\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/#webpage\"}}]},{\"@type\":\"Article\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/#webpage\"},\"author\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\"},\"headline\":\"FireDAC (AnyDAC) &#8211; O que isso representa para os desenvolvedores Delphi e C++\",\"datePublished\":\"2013-03-03T04:50:32+00:00\",\"dateModified\":\"2018-12-18T16:05:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/#webpage\"},\"commentCount\":35,\"publisher\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\"},\"image\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/#primaryimage\"},\"keywords\":[\"C++Builder\",\"Delphi\"],\"articleSection\":[\"C++Builder\",\"Delphi\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/www.andreanolanusse.com\/pt\/firedac-anydac-o-que-isso-representa-para-os-desenvolvedores-delphi-e-c\/#respond\"]}]},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\",\"name\":\"Andreano Lanusse\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#personlogo\",\"inLanguage\":\"pt-BR\",\"url\":\"http:\/\/0.gravatar.com\/avatar\/6a9c6f73c7c480fb826c7303288abfd3?s=96&d=mm&r=g\",\"contentUrl\":\"http:\/\/0.gravatar.com\/avatar\/6a9c6f73c7c480fb826c7303288abfd3?s=96&d=mm&r=g\",\"caption\":\"Andreano Lanusse\"},\"logo\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#personlogo\"},\"sameAs\":[\"https:\/\/twitter.com\/andreanolanusse\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/posts\/4257"}],"collection":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/comments?post=4257"}],"version-history":[{"count":0,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/posts\/4257\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/media\/4258"}],"wp:attachment":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/media?parent=4257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/categories?post=4257"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/tags?post=4257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}