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

quinta-feira, 21 de fevereiro de 2013

Dica – MySQL com dbExpress no Delphi 2010/XE – evitando problemas

Dica – MySQL com dbExpress no Delphi 2010/XE – evitando problemas:
Desde que o Delphi suporta MySQL através do driver dbExpress é comum ver desenvolvedores com certa dificuldade para conectar ao MySQL, vejo isso acontecer mais com aqueles que usam a versão do Delphi ou C++Builder 2010 e XE, isso poderia ser evitado ao ler o arquivo readme.html que está localizado no diretório de instalação do Delphi.
Este arquivo documenta todas as versões de banco suportada pelo dbExpress, incluindo o MySQL que tem uma particularidade, a combinação de versões de DLL que podem ser feita, isso acontece porque o MySQL muda com frequência sua API e assim dificulta para qualquer fornecedor manter a compatibilidade, por isso essa combinação.
Abaixo informações que você deve saber e que estão no readme.html

Versões de servidores MySQL oficialmente suportadas e testadas pelo Delphi e C++Builder

MySQL 5.1, 5.0.27, 4.1 (Todas) (Driver dbxMYS.dll, Client libmysql.dll)

Combinação das versões de servidores e clientes MySQL que foram testados, ou seja, veja bem as versões de DLL que devem ser usadas no server e client

  • LibMySQL.dll (5.1.XX) Client  - DBXMys.dll MySQL 4.0.XX Server
  • LibMySQL.dll (5.1.XX) Client  - DBXMys.dll MySQL 5.0.XX Server
  • LibMySQL.dll (5.1.XX) Client  - DBXMys.dll MySQL 5.1.XX Server
Sendo objetivo, instale a versão do cliente do MySQL 5.1.xx para que sua aplicação cliente possa conectar a servidores MySQL 4.0.XX, 5.0.XX e 5.1XX.
Lembre-se de instalar o cliente do  MySQL 32-bits, se você instalar o cliente 64-bits jamais irá funcionar com o Delphi 2010 e XE.
Caso você tenha mais de uma versão Delphi instalada na mesma máquina, faça o seguinte?
Duas versões de IDE na mesma máquina pode fazer com que uma  das versões antigas do driver dbExpress para MySQL seja carregado, isso irá acontecer por causa da variável de sistema PATH, coloque o diretório bin da versão do Delphi que você quer executar a frente na variável de sistema PATH, você pode fazer isso através do menu Tools -> Options -> Environment Variables. Faça este procedimento se você desejar usar outra versão do Delphi.
Uma dica simples, mas que pode ajudar a economizar um tempinho.

Posts relacionados

Andreano Lanusse | Tecnologia e Desenvolvimento de Software

Follow me on Twitter: @andreanolanusse

Update 2 para Delphi XE3 e C++Builder XE3

Update 2 para Delphi XE3 e C++Builder XE3:
Foi disponibilizado o Update 2 para Delphi XE3 e C++Builder XE3, a maioria das correções no compilador 64-bit do C++, a lista completa de correções está disponível aqui.
Você terá de desinstalar o seu Delphi e C++Builder XE3, mesmo que você tenha aplicado o Update 1. Caso você tenha instalado o Platform Assistant faça a desinstalação, pois o Update 2 traz atualizações para o mesmo.
Para efetuar o download do Update 2, visite a página de usuários registrados conforme os links abaixo:

Posts relacionados

Andreano Lanusse | Tecnologia e Desenvolvimento de Software

Follow me on Twitter: @andreanolanusse

Webinar gratuito sobre Métodos Ágeis e SCRUM

Webinar gratuito sobre Métodos Ágeis e SCRUM:
Olá pessoal,
Tenho inscrito muito sobre Agile aqui no blog para aqueles que estão começando e querem aprender mais sobre as práticas Ágeis e Lean, para acelerar este aprendizado no dia 6 de Março (14 horas) acontece o Webinar “Agile Fundamentals” promovido pelo Rally Software e apresentando por mim  (Andreano Lanusse) e meu amigo Luciano Rodrigues da AdaptWorks, neste webinar vocês irão aprender:
  • Aprender os Príncipios Ágeis chaves e como aplicá-los
  • Ver como conceitos ágeis são aplicados no Rally por meio de dashboards (quadros), user stories (histórias de usuários), planejamento de iteração (sprint) e gráficos burndown
  • Entender como aplicar imediatamente conceitos ágeis no seu dia-a-dia de trabalho com as equipes e projetos
As inscrições podem ser feitas através deste link.

Posts relacionados

Andreano Lanusse | Tecnologia e Desenvolvimento de Software

Follow me on Twitter: @andreanolanusse

terça-feira, 19 de fevereiro de 2013

ICMS - Estados ampliam controle eletrônico das operações interestaduais


A partir de informações em tempo real, os Fiscos de São Paulo, Rio Grande do Sul, Pernambuco, Bahia e Santa Catarina passam a verificar a situação cadastral do destinatário das mercadorias. Se forem identificadas irregularidades, a emissão da Nota Fiscal Eletrônica (NF-e) será denegada pelo Estado de origem e a operação não poderá ocorrer.

A seguir confira matéria publicada pela SEFAZ-SP:
http://www.fazenda.sp.gov.br/publicacao/noticia.aspx?id=1875

Fonte: SIGA o FISCO

Livro Manual de Implantação do PAF-ECF


Esse livro foi desenvolvido com o objetivo de ajudar o leitor a compreender tudo o que está envolvido no desenvolvimento do PAF-ECF - Programa Aplicativo Fiscal - Emissor de Cupom Fiscal.

O livro está estruturado em nove capítulos, como pode ser observado no sumário logo abaixo.

O livro acompanha um protótipo com a frente de caixa, balcão, sistema configurador e sistema integrador.

O autor, meu amigo Albert Eije, mostra nos requisitos e no roteiro de testes o que deve ser feito no protótipo para que o mesmo fique pronto para a homologação.

O livro pode ser comprado em três linguagens Delphi, Lazarus e Java saiba mais informações pelo link http://www.alberteije.com/livros.php

SAC Automação Delphi e Lazarus

SAC Automação Delphi e Lazarus
Assine nosso SAC Automação Delphi e Lazarus para ter suporte técnico especializado em desenvolvimento

Quem sou eu

Minha foto

Proprietário/Administrador de Empresa em TI (Tecsis Informática)
  • Autor dos projetos OpenSource ORMBr, e DBCBr
  • Autor dos componentes ACBrInstall, ACBrSped, ACBrPaf, ACBrInStore, ACBrDownload.

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.

Artigos

Seguidores

Google+ Seguindores