![Page 1: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/1.jpg)
![Page 2: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/2.jpg)
Migrando aplicações para FireDac
Diego Campos Rosa
![Page 3: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/3.jpg)
Agenda
• Compreendendo o FireDac
• Migrando Aplicações para FireDac• Migrando Paradox e dBase Databases • Compatibilidade BDE e FireDac• Ferramentas para auxiliar na migração• Principais dificuldades na migração
• FireDac em Ação!
• Considerações e dicas para sua migração
![Page 4: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/4.jpg)
Compreendendo o FireDac
• Cross-platform
• FireDac interface para TDataset
• Poder e Praticidade
![Page 5: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/5.jpg)
Migrando Aplicações para FireDac↪Compatibilidade BDE e FireDac
• Componentes
BDE FireDac
TQuery TFDQuery
TStoredProc TFDStoredProc
TTable TFDTable
TUpdateSQL TFDUpdateSQL
TBatchMove TADDataMove
![Page 6: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/6.jpg)
• Classes Auxiliares
BDE FireDac
TParam TADParam
TParams TADParams
TBlobStream TFDBlobStream
TDBDataSet, TBDEDataSet
TADRDBMSDataSet
EDBEngineError EADDBEngineException
Migrando Aplicações para FireDac↪Compatibilidade BDE e FireDac
![Page 7: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/7.jpg)
Migrando Aplicações para FireDac↪ Principais dificuldades na migração
• Migrando Paradox e dBase Databases
• Mudar para um banco de dados relaciona !?!?
• Migrando Bancos de Dados Paradox para Interbase
• Até quando você vai conseguir manter o BDE?
![Page 8: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/8.jpg)
Migrando Aplicações para FireDac↪ Migrando Paradox e dBase Databases
• Se eu tenho um banco de dados Paradox ou dBase, o que preciso para migrar?
• Usar tabelas Paradox / dBase via ODBC. • http://
forms.embarcadero.com/RADinAction-FireDACDataConnectivityWebinar10-30
• Vale a pena manter os dados nestes formatos "antigos"?
• Migrando Bancos de Dados Paradox para Interbase • clevercomponents.com/products/datapump/dp-tour.asp• clevercomponents.com/products/datapump/
![Page 9: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/9.jpg)
Migrando Aplicações para FireDac↪ Ferramentas para auxiliar na migração
• Refind é um utilitário de linha de comando para a pesquisa e substituição de padrões de texto Perl regex em um arquivo de texto.
• Mais informações:• http://docwiki.embarcadero.com/RADStudio/XE5/en/ReFind.exe,_the_Search_
and_Replace_Utility_Using_Perl_RegEx_Expressions
![Page 10: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/10.jpg)
Migrando Aplicações para FireDac↪ Ferramentas para auxiliar na migração
• BDE Aliases Migration (FireDAC)
• Mais informações:• http://docwiki.embarcadero.com/RADStudio/XE6/en/BDE_Aliases_Migration_(F
ireDAC)
![Page 11: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/11.jpg)
Considerações e dicas para sua migração
Dica 1 √ Remover propriedades que não possuem análogos no FireDAC.
√ SessionName: deve ser removida completamente, mas cuidado, sua aplicação pode estar usando múltiplas conexões de mesmo nome em diferentes sessões.
√ PrivateDir : pode ser removido completamente.
![Page 12: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/12.jpg)
Considerações e dicas para sua migração
Dica 2 √ Embora FireDAC possua um análogo do componente TTable do BDE, chamado TFDTable, é fortemente recomendado que você substitua todas as TTables com TFDQuerys
![Page 13: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/13.jpg)
Considerações e dicas para sua migração
Dica 3 √ A aplicação BDE com campos persistentes deve ter suas propriedades ProvidersFlags ajustadas manualmente.
√ Cuidado ao ajustar a propriedade Origin do DataField.
√ Ajuste manual da propriedade UpdateOptions.KeyFields.
![Page 14: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/14.jpg)
Considerações e dicas para sua migração
Dica 4
uses uADStanFactory, uADGUIxIntf;......Var oWait: IADGUIxWaitCursor; ...... ADCreateInterface(IADGUIxWaitCursor, oWait); oWait.StartWait;Try ......Finally oWait.StopWait;end;
Screen.Cursor := crSQLWait;Try ...... Finally Screen.Cursor := crDefault;End;
• Trechos de códigos como
• Devem ser substituídos
![Page 15: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/15.jpg)
Considerações e dicas para sua migração
Dica 5 √ FireDAC não possue um análogo para o acesso à API do BDE. Assim, cada código deve ser recodificado usando apenas a API FireDAC.
√ Não há uma solução direta para este caso.√ Um exemplo básico é a chamada ao método AddAlias ou AddStandardAlias contidos na unit BDE.
![Page 16: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/16.jpg)
Considerações e dicas para sua migração
Dica 6 √ Muitos componentes de terceiros requerem adaptadores para interface de comunicação do banco de dados (DataConectors).
Ex: UserControl
![Page 17: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/17.jpg)
Considerações e dicas para sua migração
Dica 7 √ Tratar Exceptions específicas do FireDac√ EDBEngineError é a classe de exceção específico do BDE.
√ FireDAC tem um análogo, EADDBEngineException.
![Page 18: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/18.jpg)
Considerações e dicas para sua migração
Dica 8
TBatchMove TADDataMove
√ São diferentes em muitos aspectos.
√ Será necessário um retrabalho em qualquer código avançado usando o TBatchMove.
![Page 19: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/19.jpg)
Considerações e dicas para sua migração
Dica 9
TFDConnection.OnLoginTDatabase.OnLogin
√ Embora possuam a mesma finalidade possuem assinaturas diferentes.
![Page 20: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/20.jpg)
Considerações e dicas para sua migração
Dica 10 √ Muito cuidado com consultas que utilizem recursos específicos do SGDB.
√ Ao invés disso utilize consultas da própria engine de SQL do FireDac, conhecida como “Local SQL engine”.
![Page 21: Migrando aplicações para FireDac - Embarcadero Conference 2014](https://reader033.vdocuments.site/reader033/viewer/2022061414/55817e41d8b42a132d8b4734/html5/thumbnails/21.jpg)
[email protected]/diego.camposrosa