Fórum Firedac + Datasnap + AutoInc #584259

31/07/2017

0

Olá, boa tarde!
Tenho uma aplicação cliente - servidor, utilizando o dbExpress em 100%. Até então, a divisão ficava da seguinte forma:
1. App Servidor: TSQLConnection + TSQLQuery + TDataSetProvider
2. App Cliente: TSQLConnection + TDSProviderConnection + TClientDataSet
Na aplicação servidor, era realizada a configuração do ProviderFlags no componente TDataSetProvider. Existia a implementação do método OnAfterUpdateRecord que definia o ID inserido do registro da seguinte forma:

DataSet.FieldByName( mPrimaryKey ).NewValue := ServerConnection.Resources.LastId;


Aonde, a função ServerConnection.Resources.LastId retorna o valor da chamada "select last_id_insert()" do MySQL.
Essa implementação acima permitia que, ao se realizar um ApplyUpdates na aplicação cliente, o ID do registro inserido fosse "automaticamente" recuperado.

Atualmente, já consegui migrar todo o lado servidor para utilizar o FireDAC e os componentes ficaram e o lado cliente continuou com o de antes:
1. App Servidor: TFDConnection + TFDQuery + TDataSetProvider
2. App Cliente: TSQLConnection + TDSProviderConnection + TClientDataSet
O problema é que não consigo recuperar o ID do registro inserido de forma transparente para o cliente. Antes, após o ApplyUpdates, já era possível acessar o campo com um AsInteger e lá estava o valor correto. Hoje, com FireDAC, ainda não é possível.

Tenho duas dúvidas básicas:
1º É possível utilizar 100% FireDAC cliente + servidor e ainda ter essa gama de recursos que o dbExpress permitia?
2º Caso contrário, como é possível conseguir recuperar o ID auto_increment de um registro inserido?
Agradeço antecipadamente pela ajuda!

Tenho a assinatura da Devmedia, mas ainda sinto muita dificuldade em encontrar ajuda para esse problema. Já persiste por algum tempo e estou pensando em partir para soluções menos "corretas".

Obrigado à todos.
Júlio Ferreira

Júlio Ferreira

Responder

Posts

01/08/2017

Hélio Devmedia

Jcmferreira,

Acredito que te respondi algo parecido em um artigo ou vídeo sobre firedac, dê uma conferida lá!
Responder

Gostei + 0

08/04/2019

Jhonatan Reis

Jcmferreira,

Acredito que te respondi algo parecido em um artigo ou vídeo sobre firedac, dê uma conferida lá!



Onde? Tenho o mesmo problema...
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar