Giter VIP home page Giter VIP logo

rdwfiredacdao's Introduction

RDWFiredacDAO

Esse componente é uma simples implementação do TFDQuery para ser usado no RestDataWare.

Doações para esse projeto:

Via PayPal:

https://www.paypal.com/donate/?hosted_button_id=VVF2T2DWCKJQL

QR Code

Via OpenCollective:

https://opencollective.com/opensourcecommunitybrasil/projects/rdwfiredacdao

Limitações:

  • Funciona apenas com RDW 2.1 ou superior;
  • Funciona apenas em Delphi XE7 ou superior;
  • Funciona apenas de FireDAC para FireDAC, ou sejam FireDAC no servidor e no cliente;

Vantagens em relação ao ClientSQL padrão:

  • Até 15 vezes mais rápido;
  • Faz acesso DUAL, ou seja, o mesmo componente abre uma base remota e uma base local;
  • Totalmente funcional: Indexes, Fields, Events, DBware, LiveBindings, RowsAffected,...
  • Funciona Edit, Insert, Update, Delete, Navigation, ApplyUpdates, (DBWare/LiveBindings)...
  • Pode ser executado Select (Open) ou Insert, Delete ou Update (ExecSQL) diretamente;
  • Aceita parâmetros;
  • Não utiliza a estrutura de PoolerDB do RestDataWare;
  • Todas as informações trocadas são binarias, desde a coleta dos parâmetros, texto do SQL, resultados e deltas;

Benchmark- FireDAC DAO x ClienSQL padrão:

image image image

Instalação:

Em um Delphi XE7 ou superior com RDW 2.1 ou superior já instalado, abra o projeto RESTDWFiredacDAO, compile e instale;

  • Não esqueca de colocar no library path o diretório em que o código do componente foi salvo.

image

Utilização no SERVIDOR:

  • Coloque o componente RESTDWConnectionFD dentro o seu DataModule do RDW (ServerMethods);
  • Configure um banco de dados no próprio componente, sem a necessidade de linkar com qualquer outro componente do RDW;
  • A diferença dele para um FDConnection comum está apenas em 2 novos eventos que foram criados:
  1. OnQueryAfterOpen: Executado sempre após uma abertura de query remota;
  2. OnQueryError: Executado sempre que uma query gera erro;
  • Esses 2 eventos servem para logar problemas de execução de query remota no servidor.
  • Apenas UM componente por banco é necessário do lado do servidor. Apenas UM componente de RESTDWConnectionFD pode atender qualquer quantidade de RESTDWClientSQLFD.

image

Utilização no CLIENT:

  • Coloque o componente RESTDWClientSQLFD no seu Form/DM;
  • Link a propriedade ClientPooler com o Client Pooler do RDW que está no seu projeto;
  • Preencha a propriedade ServerDataModuleClass com o nome da CLASSE do seu DataModule do RDW (ServerMethods) do servidor (Exemplo: TDataModule1);
  • Preencha a propriedade ServerConnectionComponent com o nome do componente RESTDWConnectionFD que foi colocado dentro o seu DataModule do RDW (ServerMethods) do servidor (Exemplo: RESTDWConnectionFD1);
  • Aqui você pode ajustar um conexão LOCAL ao seu componente para realizar acesso DUAL; A conxão local para acesso DUAL é OPCIONAL;
  • Após tudo configurado, voce terá os seguintes comandos:
  1. RESTDWClientSQLFD.OpenRemote: Abre a query no servidor e retorna;
  2. RESTDWClientSQLFD.ExecSQLRemote: Abre o DML no servidor e retorna;
  3. RESTDWClientSQLFD.ApplyUpdatesRemote: Aplica as alterações que foram feitas localmente no servidor;
  4. RESTDWClientSQLFD.RowsAffectedRemote: Quantidade de linhas afetadas por um DML;
  • Lembrando que se uma conexão DUAL estiver configurada voce pode fazer os mesmos comandos sem o sulfixo Remote para os dados locais;
  • O componente RESTDWClientSQLFD pode ser usado como uma simples query de FireDAC, ou seja, aceitar tudo que a TFDQuery aceita;

image

Migração de ClientSQL ou TFDQuery para o RESTDWClientSQLFD:

  • Abra o PAS do seu projeto, insira na uses a unit RESTDWFiredacDAO;
  • Ainda no PAS, altere o nome de todas as classes ClientSQL ou TFDQuery para RESTDWClientSQLFD;
  • Abra o DFM e altere o nome de todas as classes ClientSQL ou TFDQuery para RESTDWClientSQLFD;
  • Lembre-se de trocar o Open por OpenRemote, ExecSQL por ExecSQLRemote, ApplyUpdates para ApplyUpdatesRemote e RowsAffected por RowsAffectedRemote para casos em que queira buscar os dados no servidor;

DEMO:

DEMO feito pelo Anderson Rocha. O DEMO é um projeto com Cliente e Servidor para mostrar como usar todas as funções remota do componente, incluindo os DBWares. O banco de dados foi montado em SQLite.

image

rdwfiredacdao's People

Contributors

tempraturbo avatar mobius1qwe avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.