Um conhecimento só é válido quando compartilhado.

domingo, 28 de julho de 2013

DBXpress x FireDAC x TDataSetProvider + TClientDataSet

Olá a todos leitores, vou bloggar hoje sobre a nova engine de acesso a banco de dados da Embarcadero e no mesmo assunto sobre a DBXpress engine que era a promessa da Embarcadero e que acabou indo de ralo abaixo depois da nova aquisição.

Quem é programador em delphi mais antigo (nem precisa ser igual a mim desde a versão do delphi 2), sabe que essa é a terceira engine de acesso a dados mudada no delphi, para quem não sabe as primeiras versões vinham com o famoso BDE que ficou muito tempo sendo a engine de acesso a dados do Delphi. A algum tempo atras não muito tivemos a noticia que o BDE continuaria vindo junto ao Delphi, mas seria descontinuado, bom isso foi um impacto, pois a maioria estavam totalmente amarrados a ela, e teria que mudar toda sua estrutura e forma de acesso dados com a nova tecnologia oferecida junto ao Delphi, o DBXpress.

O DBXpress mudava toda a filosofia de acesso aos dados do banco que a maioria dos desenvolvedores conheciam, pois usavam Table e não Query, sem contar a linha de aprendizado, a mudança era tanto que até hoje tem sistemas usando o BDE mesmo sem sofrer melhorias.

Recentemente recebemos uma noticia parecida sobre o DBXpress, a Embarcadero adquiriu a engine UniDAC e mudou seu nome para FireDAC, engine essa que será agora a principal ferramenta de acesso a dados vinda com o Delphi, e como disse a noticia é parecida por vim com o anuncio que o DBXpress continuará a vir, mas não sofrerá melhorias, a diferença é que a linha de aprendizado na mudança do DBXpress para FireDAC será bem pequena para quem usa o essencial.

Fica em nossa mente, uma interrogação. Será até quando usaremos o FireDAC e teremos que mudar para outra engine?

Baseado nessa interrogação, fica aqui minha dica. Eu quando sai do BDE olhei o IBX, mas vi que ficaria amarrado ao Firebird, mas não sabia até quando pois essa engine é de acesso ao Interbase, muita gente usa para o Firebird, mas não sabe até quando manterá compatibilidade de acesso e conseguirá continuando a usa-la assim.

Nessa linha de pensamento, mudei para o DBXpress, mas usando o TSQLDataSet + TDataSetProvider + TClientDataSet, aos olhos dos mais analistas de código para ter totalmente o beneficio da mais nova engine o FireDAC, não se deveria usar o TClientDataSet, pois o TADQuery, tem o mesmo recurso para acesso a dados (menos para DataSnap) e com ele se tem maior agilidade em acesso a dados.

Mas a questão que vi é que além desse beneficio preciso pensar  também na vida útil do FireDAC com a Embarcadero, pois se usando a tecnologia (Engine) + TDataSetProvider + TClientDataSet, fica bem facil de mudar de estrutura de acesso a dados, pois o TClienteDataSet, esse não irá continuar sem melhorias, pois ele faz parte da tecnologia DataSnap, e essa a Embarcadero não trocou, nem deixará de atualiza-la, dessa forma espero que o TClientDataSet passe por um refectory e seja tão rápido quanto se diz ser o TQDQuery, quem sabe? Sem contar que se num futuro o FireDAC deixar de ser o engine principal, e a Embarcadero comprar outra engine, fica facil de mudar novamente, como esta sendo dessa vez.

É isso ai, espero que a dica tenha sido valiosa para você amigo leitor, grande abraço e fique com Deus.

quarta-feira, 24 de julho de 2013

FireDAC com Firebird e CacheUpdate

Olá a todos leitores, sempre que me sobra um tempo, ando fazendo uns testes na nova suite de acesso a dados da Embarcadero o FireDAC, mas com mais de 15 anos de experiencia em programação sei que nem sempre tudo é só maravilhas.
Meus sistemas são multi-banco, hoje tenho clientes com SQL Server e alguns com Firebird, dessa forma tenho que conhecer o FireDAC testando vários bancos para saber realmente se ele irá me atender num futuro, onde o DBX deixará de avoluir, meus primeiros testes são sempre com tabelas metre-detalhe, para ter uma real noção de como a suite irá se comportar.
Os meus testes começaram com SQL Server, e logo ativei o recurso de CacheUpdate do TADQuery, pois é como trabalho hoje com DBX, nos testes simples executados tudo ok, mas quando mudei o banco de dados para Firebird, ao aplicar o ApplyUpdate(0), não persistia os dados no banco como no SQL Server.

Tudo leva a um BUG do FireDAC como os bancos Interbase e Firebird, o jeito é esperar que em futuras versões venha uma correção para essa situação, mas temporariamente ela pode ser resolvida disparando o comando "StartTransaction" pelo componente TADConnection assim:

Ao iniciar sua aplicação, e estabelecer a conexão como seu banco de dados, logo após dispare o método:

ADConnection.StartTransaction;

Pronto,  bastando este comando ao disparar o ApplyUpdates(0); será persistido as informações no seu banco de dados Firebird.

Obs: Não olhei internamente o motivo.

25/07/2013
Após alguns testes descobri uma forma mais segura e profissional de conseguir persistir os dados no banco Firebird com CacheUpdate.

   ADConnection.ApplyUpdates([ADMestre, ADDetalhe]);


Indico esta forma a ser utilizada, não a que postei anterior, pois ela deixa uma transação em aberto, essa nova forma não.

Abraço a todos.

segunda-feira, 22 de abril de 2013

Delphi XE4 Trial por 30 Dias

Hoje dia 22/04/2013, foi lançado no site da Embercadero o Delphi XE4, experimente a versão Trial, que já pode ser baixado no link RAD Studio XE4 for 30 days, na instalação serão instalados:
Delphi, C++Builder e HTML5 Builder, você pode também experimentar o novo Instant Trial (Beta) que instalará o Delphi e C++Builder, veja também Oferta especial para primeira aquisição de RAD Studio, Delphi e C++Builder XE4!

domingo, 21 de abril de 2013

sábado, 6 de abril de 2013

FireDAC no Delphi

Olá, como a maioria já sabe a mais recente aquisição da Embarcadero, é a suite de acesso a dados chamado FireDAC, nome definido pela Embarcadero para comercialização da suite de componentes que a própria adquiriu e que se chamava AnyDAC, mais informações sobre o assunto veja no link FireDAC. Meu objetivo aqui é mostrar como instalar o FireDAC em outras versões do Delphi que não seja a padrão do instalador XE3.
Para instalar o FireDAC em outra versão do delphi basta executar o instalador passando para ele a versão do delphi onde deve ser instalado dessa forma:

[code]
FireDAC_x.x.x.xxxx.exe /IDE:D? - onde interrogação é a versão do delphi exemplo D2010

É isso ai, abraço a todos

Total de visualizações

Postagem em destaque

ORMBr - Mapeamento objeto-relacional

Mapeamento objeto-relacional ( ou ORM, do inglês: Object-relational mapping ) é uma técnica de desenvolvimento utilizada para reduzir...

Todo os direitos reservados.. Tecnologia do Blogger.

Seguidores