Esse componente é uma simples implementação do TFDQuery para ser usado no RestDataWare.
Via PayPal:
https://www.paypal.com/donate/?hosted_button_id=VVF2T2DWCKJQL
Via OpenCollective:
https://opencollective.com/opensourcecommunitybrasil/projects/rdwfiredacdao
- Funciona apenas com RDW 2.1 ou superior;
- Funciona apenas em Delphi XE7 ou superior;
- Funciona apenas de FireDAC para FireDAC, ou seja FireDAC no servidor e no cliente;
- 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;
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.
- 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:
- OnQueryAfterOpen: Executado sempre após uma abertura de query remota;
- 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.
- 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:
- RESTDWClientSQLFD.OpenRemote: Abre a query no servidor e retorna;
- RESTDWClientSQLFD.ExecSQLRemote: Abre o DML no servidor e retorna;
- RESTDWClientSQLFD.ApplyUpdatesRemote: Aplica as alterações que foram feitas localmente no servidor;
- 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;
- 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 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.