Hola Amigos.
Estoy entrando en el mundo de FireDac, con DataSnap, y aunque he realizado varias aplicaciones con los componentes de firedac nunca he utilizado la metodología para enviar la información entre el cliente y el servidor en DataSnap.
Como no me ha funcionado el applyupdates, repliqué la operación en forma local, de tal forma que se realiza una actualización en un grid y luego aplicar los cambios desde el TFDMemTable hacia el TFDQuery, estoy siguiendo al pie de la letra lo que dice la documentación eliminando la conexión datasnap, sin embargo no ha querido funcionar, si alguien ya ha utilizado esto o tiene alguna idea donde estoy fallando o existe otra metodología para realizar esto, se los agradecería.
Estoy utilizando Delphi 10.1, Base de datos Postgres
La documentación se tomó de: http://docwiki.embar...ion_and_FireDAC
Adjunto imagenes de la aplicación y el código utilizado, Muchas Gracias.
procedure TForm9.BtnGetDataClick(Sender: TObject); Var DataSetList : TFDJSONDataSets; Begin //--------- Server Part ------------------ DataSetList := TFDJSONDataSets.Create; TFDJSONDataSetsWriter.ListAdd(DataSetList, FDQuery1); //--------- Client part ------------------ FDMemTable1.Close; FDMemTable1.AppendData(TFDJSONDataSetsReader.GetListValue(DataSetList, 0)); end; procedure TForm9.BtnApplyUpdatesClick(Sender: TObject); Var Deltas: TFDJSONDeltas; LApply: IFDJSONDeltasApplyUpdates; begin //--------- Client part ------------------ if FDMemTable1.State in dsEditModes then FDMemTable1.Post; Deltas := TFDJSONDeltas.Create; TFDJSONDeltasWriter.ListAdd(Deltas, 'users', FDMemTable1); //--------- Server Part ------------------ LApply := TFDJSONDeltasApplyUpdates.Create(Deltas); LApply.ApplyUpdates('users', FDQuery1.Command); if LApply.Errors.Count > 0 then raise Exception.Create(LApply.Errors.Strings.Text); end;