Centro de Formação em Tecnologia Curso Mobile Apps - FireDac 1 01- Introdução O que e o FireDAC? É uma biblioteca de acesso universal a dados para o desenvolvimento de aplicações para múltiplos dispositivos conectados a bases de dados corporativos. Com a sua poderosa arquitectura universal, o FireDAC possibilita acesso direto, nativo e de alta velocidade aos SGBDs InterBase, SQLLite, MySQL, SQL Server, Oracle, PostgreSQL, DB2, SQL Anywhere, Advantage DB, Firebird, Access e Informix. É possível ainda conectar-se a um servidor DataSnap. O FireDAC suporta, abstrai e simplifica o acesso a dados, fornecendo todas as funções necessárias para construir aplicações de alta performance. É possível desenvolver para múltiplos dispositivo: Android, iOS, Windows e OS X. Características Os datasets do FireDAC são construídos sobre um poderoso motor (engine) de acesso a dados. Este motor de tamanho reduzido é efectivo e flexível, podendo ser usado Financiado pelo FSE Pág: 1 Centro de Formação em Tecnologia Curso Mobile Apps - FireDac directamente nas aplicações, servindo como uma poderosa fundação para a API dos datasets. O motor consiste dos componentes dataset e das camadas não-componentes (noncomponent layers), representadas pelas APIs flexíveis orientadas a objectos. Classes TDataSet descendentes de fácil utilização, TFDQuery, TFDMemTable, TFDStoredProc e TFDTable. Classes de dataset altamente compatíveis com datasets originais do BDE e do ClientDataSet. Um dos mais rápidos datasets in-memory, com ordenação, filtragem, agregação, índices filtrados e de expressão, persistência, etc. Engine SQL local para execução de consultas (queries) SQL nos datasets. Acesso de Alto Desempenho – High-Performance Data Access O acesso às bases de dados é optimizado utilizando várias técnicas distintas normalmente encontradas apenas em componentes específicos de base de dados, o que permite maior velocidade de acesso a dados já no primeiro instante. Modo de janela de dados de tempo real, (Live Data Window) que permite navegar datasets grandes de modo rápido e bidireccional. Busca com “row set” parametrizável e flexível. Execução automática, eficiente e sofisticada de actualizações de comando. Execução de comandos de manipulação de dados (DML) em array e Command Batches para execução em lote e redução do tráfego de rede. Suporte direto a execução de comando assíncrono, timeout e cancelamento de execução de comando. Modo de actualizações em cache, com a possibilidade de rastrear as mudanças correlacionais de vários datasets, com actualizações em cascata. Suporte pleno a campos de auto-incremento, incluindo aqueles baseados em geradores e gatilhos de tabelas. API Unificada O FireDAC fornece várias funções que ajudam a abstrair as diferenças entre sistemas de base de dados, facilitando a tarefa de escrever código sem se preocupar com diferentes dialectos de DBMS (database management system) ou outras diferenças sutis destes. Abstracção de dialecto SQL através de sequências de escape, declarações condicionais e macros do FireDAC. Unificação de tipos de dados com mapeamento flexível e ajustável de tipos de dados. Relatórios de erros unificados, incluindo informações de erros específicos ou independentes de DBMS. Financiado pelo FSE Pág: 2 Centro de Formação em Tecnologia Curso Mobile Apps - FireDac Suporte unificado a transacções, com transacções de read e update separadas, e acesso a todo o poder do suporte a transacções específicas do InterBase e do Firebird. Recuperação automática da conexão, que restabelece automaticamente a conexão em caso de instabilidade do ambiente. Suporte a múltiplas codificações Unicode e ANSI. O FireDAC fornece várias funções que ajudam a abstrair as diferenças entre sistemas de base de dados, facilitando a tarefa de escrever código sem se preocupar com diferentes dialectos de DBMS (database management system) ou outras diferenças sutis destes. Modo de conexão offline, que permite que a aplicação continue a trabalhar sem uma conexão física a uma base de dados. Eventos de base de dados e suporte de notificações. Suporte a scripts SQL unificados. Capacidades ampliadas de busca de metadados. Suporte Nativo aos Drivers e Mais… Além de conectividade universal a DBMSs, o FireDAC também suporta drivers nativos de bases de dados, dando o acesso de primeira linha às poderosas e avançadas funções que tornam cada base de dados única. Acesso a APIs e funções específicas de vários SGBDs: MySQL – Microsoft SQL Server – Oracle Database – InterBase – PostgreSQL – DataSnap – SQLite – Sybase SQL Anywhere – Microsoft Access – IBM DB2 Server – Informix – Firebird – Advantage Database. Suporte para serviços como backup, restauração, gestão de segurança e muito mais. Financiado pelo FSE Pág: 3 Centro de Formação em Tecnologia Curso Mobile Apps - FireDac Acesso a base de dados móveis no Android e iOS para as seguintes bases: InterBase – InterBase ToGo e IBLite SQLite Arquitectura - Geral O FireDAC possui uma arquitectura de múltiplas camadas fracamente acoplada, onde as camadas fornecem serviços. Uma API de serviço é definida como uma interface COM que outras camadas podem solicitar utilizando a fábrica de interfaces. Quando a implementação de uma interface não for encontrada, uma excepção é gerada. Financiado pelo FSE Pág: 4 Centro de Formação em Tecnologia Curso Mobile Apps - FireDac Para vincular a implementação num aplicativo, a unidade correspondente também deve ser vinculada. Essas implementações podem ser obrigatórias ou opcionais, e pode escolher a partir de implementações alternativas. Nonvisible Components [Comp] A camada Nonvisible Components [Comp] representa as interfaces públicas do FireDAC como componentes não visuais do Delphi, semelhante a outros componentes de acesso a dados Delphi. Inclui componentes como TFDConnection (estabelece a conexão), TFDQuery (executa a consulta), TFDStoredProc (executa a stored procedure), TFD MemTable (dataset inmemory), TFDScript (o motor de script SQL), e assim por diante. Visible Components [GUIx] Financiado pelo FSE Pág: 5 Centro de Formação em Tecnologia Curso Mobile Apps - FireDac A camada Visible Components [GUIx] fornece uma maneira de interagir com o utilizador final a partir de uma aplicação FireDAC. É um conjunto de componentes de alto nível que permite adicionar diálogos de utilizador final para as operações padrões das bases de dados, como um Login. Inclui componentes como TFDGUIxWaitCursor (cursor de espera), TFDGUIxLoginDialog (ecrã de login), TFDGUIxErrorDialog (diálogo de erro), e assim por diante. A camada fornece implementações para VCL (VCL), FireMonkey (FMX) e console. Local Data Storage [DatS] Local Data Storage [DatS] é uma implementação de armazenamento de dados local, o que é análoga ao DataSet ADO.NET e seus objectos relacionados (DataTable, DataRow, DataView, e assim por diante). É um motor de dados em memória, que armazena e manipula todos os dados e metadados do cliente. Financiado pelo FSE Pág: 6 Centro de Formação em Tecnologia Curso Mobile Apps - FireDac Data Adapter [DApt] Data Adapter [DApt] permite a automação e o ajuste fino de uma operação de leitura com conjuntos complexos de resultados (mestre-detalhes, aninhado, ADT, etc). Permite ainda a actualização de volta para o sistema de base de dados. É controlado principalmente por meio das propriedades TField e UpdateOptions. Financiado pelo FSE Pág: 7 Centro de Formação em Tecnologia Curso Mobile Apps - FireDac Debug and Performance Monitor [Moni] Debug and Performance Monitor [Moni] representa os recursos de depuração FireDAC que implementam as interfaces de monitor de depuração, que permitem monitorar e rastrear as interações entre a aplicação FireDAC e o Sistema de Gestão de Base de Dados (SGBD). É controlado pelas propriedades “TFDMoniXxxxClientLink” do componente e pelo parâmetro de definição de conexão “MonitorBy”. Inclui componentes como TFDMoniRemoteClientLink (monitoramento mento usando FDMonitor), TFDMoniFlatFileClientLink (rastreamento em ficheiro), TFDMoniCustomClientLink (rastreamento parametrizado). Financiado pelo FSE Pág: 8 Centro de Formação em Tecnologia Curso Mobile Apps - FireDac Drivers API [Phys] Drivers API [Phys] define as interfaces para acesso físico aos dados. Ele os implementa em pacotes separados, como drivers, onde cada pacote de driver pertence à camada Phys e implementa as interfaces necessárias usando a API DBMS apropriada. Financiado pelo FSE Pág: 9 Centro de Formação em Tecnologia Curso Mobile Apps - FireDac Native Drivers [Phys] Native Drivers [Phys] implementam o acesso a um DBMS usando uma API de baixo nível de alta performance, que é recomendada pelo fornecedor do SGBD. Eles adaptam as características específicas do DBMS para a API FireDAC. Todos os drivers nativos foram testados e optimizados para um DBMS. Eles incluem TFDPhys<DBMS>DriverLink, bem como componentes de serviço. Bridging Drivers [Phys] Bridging Drivers [Phys] implementam o acesso genérico para um SGBD usando APIs genéricas de acesso a dados: ODBC e dbExpress. Incluem TFDPhysODBCDriverLink (driver ODBC) e TFDPhysTDBXDriverLink (driver dbExpress). Financiado pelo FSE Pág: 10 Centro de Formação em Tecnologia Curso Mobile Apps - FireDac Arquitetura - Componentes Financiado pelo FSE Pág: 11 Centro de Formação em Tecnologia Curso Mobile Apps - FireDac Base de Dados Conexões nativas Conexões de ponte Financiado pelo FSE Pág: 12 Centro de Formação em Tecnologia Curso Mobile Apps - FireDac Dados a ter em conta: Detalhes de uma base de dados (ex: Firebird) Financiado pelo FSE Pág: 13 Centro de Formação em Tecnologia Curso Mobile Apps - FireDac Financiado pelo FSE Pág: 14