SlideShare uma empresa Scribd logo
1 de 31
Introdução FireDAC
Acesso multi-banco para Delphi e C++ Builder
Diego Campos Rosa
Créditos
“Para aprender Delphi, não basta saber como utilizar
os componentes. Deve-se entender como funcionam e,
se possível, como foram feitos.”
Gustavo Chaurais
AGENDA
Agenda
• O que é FireDAC
• Visão geral da arquitetura
• Principais características
• Pratica
• Perguntas
FIREDAC
FireDAC
• Versão Embarcadero do AnyDAC
• Conjunto realmente universal para acesso a banco de dados
– Possibilitando usar as características especificas de cada
banco de dados
• Alta performance de acesso
– Desde Live Data até Array DML
• API unificada
– Abstração de SQL
– Controle de transações e de erros unificados
• Com fácil migração do BDE
Arquitetura
PRINCIPAIS
COMPONENTES
Principais Componentes
• TADConnection - Gerencia Ligação com BD
• TADTransaction - Gerencia as transações com BD
• TADMemTable - Conjunto de dados na memória
• TADQuery – Implementação da classe DataSet, que
permite execução de SQL.
• TADTable - abre uma tabela para navegação
• TADScript - Executa scripts SQL em lote
• TADUpdateSQL – Aplica atualizações que não podem
ser feitas diretamente.
• Driver Link - Descreve como configurar o driver do BD
COMPONENTES DE UI
Componentes de UI
• TFDGUIxErrorDialog: Caixa de diálogo exibe as
exceções FireDAC
• TFDGUIxLoginDialog: Caixa de diálogo permite que
os usuários insiram suas credenciais de banco de
dados
• TFDGUIxWaitCursor: Componente permite que o
controlo do cursor de espera.
• 3 implementação - FireMonkey, VCL, console
COMPONENTES DE
SERVIÇO
Componentes de Serviço
• TADXxxxBackup - Backup do BD
• TADXxxxRestore – Restauração do BD
• TADXxxxValidate - Verificação e Correção
• TADXxxxSecurity BD - Gerencie a criptografia do BD
• TADSQLiteFunction, TADSQLiteCollation -
Componentes específicos para p SQLite
OPÇÕES DO FIREDAC
Opções do FireDAC
• FetchOptions – controla o retorno de registros
• FormatOptions - controlam como os tipos das
colunas do DB são mapeados
• ResourceOptions - opções de recursos que
controlam como os recursos do sistema são
utilizados,
• UpdateOptions - opções que controlam como
FireDAC realizara o posts para o DB.
• TxOptions - controlam como as transações são
realizadas.
TRACING
TRACING
• TADMMiniFlatfileClientLink: Arquivo Texto
• TADMMiniRemoteClientLink: ADMonitor
• Attivando Tracing
• Tracing to true
• MonytorBy = FlatFile ou Remote in connection
setting
MAPEAMENTO DE
TIPOS DE DADOS
Mapeamento de tipos de dados
• Mapeamento personalizado por conexão ou
DataSet visuais
• Ou em código
COMANDOS EM LOTE
Comandos em lote
• Lotes de comando, permite executar múltiplos comandos
de SQL num único passo e processar vários conjuntos de
resultados de uma sequência.
ADQuery1.FetchOptions.AutoClose := False;
ADQuery1.SQL.Text := 'select * from orders; select * from
customers';
ADQuery1.Open;
ADQuery1.FetchAll; // assign orders records to ADMemTable1
ADMemTable1.Data := ADQuery1.Data; ADQuery1.NextRecordSet;
ADQuery1.FetchAll; // assign customers records to ADMemTable2
ADMemTable2.Data := ADQuery1.Data;
DESEMPENHO ARRAY
DML
Desempenho Array DML
• Realizado N insert / update / instruções DELETE
parametrizado por chamada
• Flexível, fácil e eficaz
• Cada parâmetro contém uma matriz de valores,
FDQuery1.Execute(FDQuery1.Params.ArraySize);
• O servidores mais lentos ou mais fracos da rede,
criam menos pacotes TCP / IP.
• INSERT registros de 10K:
– DML array -> 0,03 seg
– Normal ExecSQL -> 5,50 seg
EXECUÇÃO
ASSÍNCRONA
Execução Assíncrona
• Transações de longa duração pode ser assíntrica ou
com um tempo limite
• ResourceOptions.CmdExecMode = amAsync ,
• ResourceOptions.CmdExecMode = amCancelDialog
– execução assíncrona do diálogo
TADGUIxAsyncExecuteDialog para cencelamento
• ResourceOptions.CmdExecTimeout
• ADDataSet.AbortJob - Execução de cancelamento
EXECUÇÃO DE SQL
ESPECÍFICOS
Execução de SQL específicos
• Função Escape - uma expressão para cada banco de
dados:
select {left({ucase(RegionDescription)}, 3)},
RegionDescription from {id Region}
• Operações condicionais - permite escrever SQL
específico para cada DB:
{IF Oracle} SELECT * FROM “Region” {fi}
{IF MSSQL} SELECT * FROM [Territories] {fi}
• Macros – permite a troca de parâmetros na aplicação:
ADQuery1.SQL.Text: = SELECT * FROM &TabName;
ADQuery1.MacroByName (‘TabName’) AsIdentifier : =
Edit1.Text; ADQuery1.Open;
MIGRANDO DE BDE
Migrando de BDE
• Alta compatibilidade entre BDE e FireDAC:
– as propriedades, métodos, sobre o comportamento
Perguntas?
• Portal de Treinamentos e Vagas – http://www.edobrasil.net/treinamentos
• Embarcadero Developer Network - http://edn.embarcadero.com
• Diretório de MVP’s - http://www.embarcadero.com.br/mvp-directory
• Documentação dos Produtos - http://docs.embarcadero.com
• CodeRage 7 - http://www.embarcadero.com/coderage
• YouTube - http://youtube.com/user/embarcaderodobrasil
• Twitter - https://twitter.com/EmbarcaderoBR http://twitter.com/EmbarcaderoTech
• Blogs: http://blogs.embarcadero.com
• Facebook:
https://www.facebook.com/pages/Embarcadero-Delphi-Brasil/399151510134179
• atendimento@embarcadero.com.br
• (11) 5643-1333
Obrigado!
Diego Campos Rosa
dcampos@aquasoft.com.br
http://twitter.com/Diegocamposrosa
http://www.aquasoft.com.br

Mais conteúdo relacionado

Mais procurados

Sistemas operacionais de redes particionamento de discos ii
Sistemas operacionais de redes   particionamento de discos iiSistemas operacionais de redes   particionamento de discos ii
Sistemas operacionais de redes particionamento de discos ii
Carlos Melo
 
Gerência de redes com Zabbix: conhecendo a ferramenta
Gerência de redes com Zabbix: conhecendo a ferramentaGerência de redes com Zabbix: conhecendo a ferramenta
Gerência de redes com Zabbix: conhecendo a ferramenta
Aécio Pires
 
유닉스 리눅스 마이그레이션_이호성_v1.0
유닉스 리눅스 마이그레이션_이호성_v1.0유닉스 리눅스 마이그레이션_이호성_v1.0
유닉스 리눅스 마이그레이션_이호성_v1.0
sprdd
 
Designing the active directory logical structure
Designing the active directory logical structureDesigning the active directory logical structure
Designing the active directory logical structure
John Carlo Catacutan
 
Acronyms of service now
Acronyms of service nowAcronyms of service now
Acronyms of service now
ErMK
 
Presentation vmware building “your cloud”
Presentation   vmware building “your cloud”Presentation   vmware building “your cloud”
Presentation vmware building “your cloud”
solarisyourep
 
DB2 LUW - Backup and Recovery
DB2 LUW - Backup and RecoveryDB2 LUW - Backup and Recovery
DB2 LUW - Backup and Recovery
imranasayed
 

Mais procurados (20)

Oracle database hot backup and recovery
Oracle database hot backup and recoveryOracle database hot backup and recovery
Oracle database hot backup and recovery
 
Aula 06 - TEP - Introdução SQLite
Aula 06 - TEP - Introdução SQLiteAula 06 - TEP - Introdução SQLite
Aula 06 - TEP - Introdução SQLite
 
itlchn 20 - Kien truc he thong chung khoan - Phan 1
itlchn 20 - Kien truc he thong chung khoan - Phan 1itlchn 20 - Kien truc he thong chung khoan - Phan 1
itlchn 20 - Kien truc he thong chung khoan - Phan 1
 
Aula 1
Aula 1Aula 1
Aula 1
 
Sistemas operacionais de redes particionamento de discos ii
Sistemas operacionais de redes   particionamento de discos iiSistemas operacionais de redes   particionamento de discos ii
Sistemas operacionais de redes particionamento de discos ii
 
Gerência de redes com Zabbix: conhecendo a ferramenta
Gerência de redes com Zabbix: conhecendo a ferramentaGerência de redes com Zabbix: conhecendo a ferramenta
Gerência de redes com Zabbix: conhecendo a ferramenta
 
유닉스 리눅스 마이그레이션_이호성_v1.0
유닉스 리눅스 마이그레이션_이호성_v1.0유닉스 리눅스 마이그레이션_이호성_v1.0
유닉스 리눅스 마이그레이션_이호성_v1.0
 
Designing the active directory logical structure
Designing the active directory logical structureDesigning the active directory logical structure
Designing the active directory logical structure
 
Acronyms of service now
Acronyms of service nowAcronyms of service now
Acronyms of service now
 
Backup And Recovery
Backup And RecoveryBackup And Recovery
Backup And Recovery
 
Xen and Apache cloudstack
Xen and Apache cloudstack  Xen and Apache cloudstack
Xen and Apache cloudstack
 
Managing Updates with System Center Configuration Manager 2012
Managing Updates with System Center Configuration Manager 2012Managing Updates with System Center Configuration Manager 2012
Managing Updates with System Center Configuration Manager 2012
 
Db2 recovery IDUG EMEA 2013
Db2 recovery IDUG EMEA 2013Db2 recovery IDUG EMEA 2013
Db2 recovery IDUG EMEA 2013
 
Palestra de Windows Server 2016
Palestra de Windows Server 2016Palestra de Windows Server 2016
Palestra de Windows Server 2016
 
Presentation vmware building “your cloud”
Presentation   vmware building “your cloud”Presentation   vmware building “your cloud”
Presentation vmware building “your cloud”
 
DB2 LUW - Backup and Recovery
DB2 LUW - Backup and RecoveryDB2 LUW - Backup and Recovery
DB2 LUW - Backup and Recovery
 
Frameworks JAVA EE 5 de marzo de 2.012
Frameworks JAVA EE 5 de marzo de 2.012Frameworks JAVA EE 5 de marzo de 2.012
Frameworks JAVA EE 5 de marzo de 2.012
 
Agr aula3
Agr aula3Agr aula3
Agr aula3
 
Banco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bdBanco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bd
 
Presentation citrix desktop virtualization
Presentation   citrix desktop virtualizationPresentation   citrix desktop virtualization
Presentation citrix desktop virtualization
 

Destaque

Python + Delphi: Um relacionamento que está dando certo
Python + Delphi: Um relacionamento que está dando certoPython + Delphi: Um relacionamento que está dando certo
Python + Delphi: Um relacionamento que está dando certo
Fernando Macedo
 

Destaque (9)

FireDAC: do básico ao avançado - Embarcadero Conference 2014
FireDAC: do básico ao avançado - Embarcadero Conference 2014FireDAC: do básico ao avançado - Embarcadero Conference 2014
FireDAC: do básico ao avançado - Embarcadero Conference 2014
 
Migrando aplicações para FireDac - Embarcadero Conference 2014
Migrando aplicações para FireDac - Embarcadero Conference 2014Migrando aplicações para FireDac - Embarcadero Conference 2014
Migrando aplicações para FireDac - Embarcadero Conference 2014
 
Migrando 4 milhões de linhas de Delphi 7 para XE7
Migrando 4 milhões de linhas de Delphi 7 para XE7Migrando 4 milhões de linhas de Delphi 7 para XE7
Migrando 4 milhões de linhas de Delphi 7 para XE7
 
Testando aplicações DataSnap
Testando aplicações DataSnapTestando aplicações DataSnap
Testando aplicações DataSnap
 
Datasnap com FireDAC - Embarcadero Conference 2015
Datasnap com FireDAC - Embarcadero Conference 2015Datasnap com FireDAC - Embarcadero Conference 2015
Datasnap com FireDAC - Embarcadero Conference 2015
 
RESTful com json
RESTful com jsonRESTful com json
RESTful com json
 
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...
 
Python + Delphi: Um relacionamento que está dando certo
Python + Delphi: Um relacionamento que está dando certoPython + Delphi: Um relacionamento que está dando certo
Python + Delphi: Um relacionamento que está dando certo
 
Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática
 

Semelhante a Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder

PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
Marco Pinheiro
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
elliando dias
 

Semelhante a Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder (20)

FireDAC - Embarcadero Conference 2015
FireDAC - Embarcadero Conference 2015FireDAC - Embarcadero Conference 2015
FireDAC - Embarcadero Conference 2015
 
Apresentação IDMS DC / DB COMPONENTS RESOURCES
Apresentação IDMS DC / DB COMPONENTS RESOURCESApresentação IDMS DC / DB COMPONENTS RESOURCES
Apresentação IDMS DC / DB COMPONENTS RESOURCES
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
Isolamento e mvcc
Isolamento e mvccIsolamento e mvcc
Isolamento e mvcc
 
Design Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com CtoolsDesign Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com Ctools
 
Integração de Sistemas usando tecnologias open source
Integração de Sistemas usando tecnologias open sourceIntegração de Sistemas usando tecnologias open source
Integração de Sistemas usando tecnologias open source
 
Cache com redis novatec
Cache com redis novatecCache com redis novatec
Cache com redis novatec
 
Cache com redis novatec
Cache com redis novatecCache com redis novatec
Cache com redis novatec
 
Oracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasOracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferenças
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftPath to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
 
SQL e Transações
SQL e TransaçõesSQL e Transações
SQL e Transações
 
MySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI TecnologiaMySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI Tecnologia
 
Automação de Data Center
Automação de Data CenterAutomação de Data Center
Automação de Data Center
 
14-programacao-bd-Object Relational Mapper.pdf
14-programacao-bd-Object Relational Mapper.pdf14-programacao-bd-Object Relational Mapper.pdf
14-programacao-bd-Object Relational Mapper.pdf
 
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
 

Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder

  • 1. Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder Diego Campos Rosa
  • 2. Créditos “Para aprender Delphi, não basta saber como utilizar os componentes. Deve-se entender como funcionam e, se possível, como foram feitos.” Gustavo Chaurais
  • 4. Agenda • O que é FireDAC • Visão geral da arquitetura • Principais características • Pratica • Perguntas
  • 6. FireDAC • Versão Embarcadero do AnyDAC • Conjunto realmente universal para acesso a banco de dados – Possibilitando usar as características especificas de cada banco de dados • Alta performance de acesso – Desde Live Data até Array DML • API unificada – Abstração de SQL – Controle de transações e de erros unificados • Com fácil migração do BDE
  • 9. Principais Componentes • TADConnection - Gerencia Ligação com BD • TADTransaction - Gerencia as transações com BD • TADMemTable - Conjunto de dados na memória • TADQuery – Implementação da classe DataSet, que permite execução de SQL. • TADTable - abre uma tabela para navegação • TADScript - Executa scripts SQL em lote • TADUpdateSQL – Aplica atualizações que não podem ser feitas diretamente. • Driver Link - Descreve como configurar o driver do BD
  • 11. Componentes de UI • TFDGUIxErrorDialog: Caixa de diálogo exibe as exceções FireDAC • TFDGUIxLoginDialog: Caixa de diálogo permite que os usuários insiram suas credenciais de banco de dados • TFDGUIxWaitCursor: Componente permite que o controlo do cursor de espera. • 3 implementação - FireMonkey, VCL, console
  • 13. Componentes de Serviço • TADXxxxBackup - Backup do BD • TADXxxxRestore – Restauração do BD • TADXxxxValidate - Verificação e Correção • TADXxxxSecurity BD - Gerencie a criptografia do BD • TADSQLiteFunction, TADSQLiteCollation - Componentes específicos para p SQLite
  • 15. Opções do FireDAC • FetchOptions – controla o retorno de registros • FormatOptions - controlam como os tipos das colunas do DB são mapeados • ResourceOptions - opções de recursos que controlam como os recursos do sistema são utilizados, • UpdateOptions - opções que controlam como FireDAC realizara o posts para o DB. • TxOptions - controlam como as transações são realizadas.
  • 17. TRACING • TADMMiniFlatfileClientLink: Arquivo Texto • TADMMiniRemoteClientLink: ADMonitor • Attivando Tracing • Tracing to true • MonytorBy = FlatFile ou Remote in connection setting
  • 19. Mapeamento de tipos de dados • Mapeamento personalizado por conexão ou DataSet visuais • Ou em código
  • 21. Comandos em lote • Lotes de comando, permite executar múltiplos comandos de SQL num único passo e processar vários conjuntos de resultados de uma sequência. ADQuery1.FetchOptions.AutoClose := False; ADQuery1.SQL.Text := 'select * from orders; select * from customers'; ADQuery1.Open; ADQuery1.FetchAll; // assign orders records to ADMemTable1 ADMemTable1.Data := ADQuery1.Data; ADQuery1.NextRecordSet; ADQuery1.FetchAll; // assign customers records to ADMemTable2 ADMemTable2.Data := ADQuery1.Data;
  • 23. Desempenho Array DML • Realizado N insert / update / instruções DELETE parametrizado por chamada • Flexível, fácil e eficaz • Cada parâmetro contém uma matriz de valores, FDQuery1.Execute(FDQuery1.Params.ArraySize); • O servidores mais lentos ou mais fracos da rede, criam menos pacotes TCP / IP. • INSERT registros de 10K: – DML array -> 0,03 seg – Normal ExecSQL -> 5,50 seg
  • 25. Execução Assíncrona • Transações de longa duração pode ser assíntrica ou com um tempo limite • ResourceOptions.CmdExecMode = amAsync , • ResourceOptions.CmdExecMode = amCancelDialog – execução assíncrona do diálogo TADGUIxAsyncExecuteDialog para cencelamento • ResourceOptions.CmdExecTimeout • ADDataSet.AbortJob - Execução de cancelamento
  • 27. Execução de SQL específicos • Função Escape - uma expressão para cada banco de dados: select {left({ucase(RegionDescription)}, 3)}, RegionDescription from {id Region} • Operações condicionais - permite escrever SQL específico para cada DB: {IF Oracle} SELECT * FROM “Region” {fi} {IF MSSQL} SELECT * FROM [Territories] {fi} • Macros – permite a troca de parâmetros na aplicação: ADQuery1.SQL.Text: = SELECT * FROM &TabName; ADQuery1.MacroByName (‘TabName’) AsIdentifier : = Edit1.Text; ADQuery1.Open;
  • 29. Migrando de BDE • Alta compatibilidade entre BDE e FireDAC: – as propriedades, métodos, sobre o comportamento
  • 30. Perguntas? • Portal de Treinamentos e Vagas – http://www.edobrasil.net/treinamentos • Embarcadero Developer Network - http://edn.embarcadero.com • Diretório de MVP’s - http://www.embarcadero.com.br/mvp-directory • Documentação dos Produtos - http://docs.embarcadero.com • CodeRage 7 - http://www.embarcadero.com/coderage • YouTube - http://youtube.com/user/embarcaderodobrasil • Twitter - https://twitter.com/EmbarcaderoBR http://twitter.com/EmbarcaderoTech • Blogs: http://blogs.embarcadero.com • Facebook: https://www.facebook.com/pages/Embarcadero-Delphi-Brasil/399151510134179 • atendimento@embarcadero.com.br • (11) 5643-1333

Notas do Editor

  1. ADQuery tem cache de apoio Use ADMenTable manter instantâneo de dados na memória, carregar múltiplas