Ir al contenido


Foto

FireDac ApplyUpdates no funciona


  • Por favor identifícate para responder
No hay respuestas en este tema

#1 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 539 mensajes
  • LocationCali, Colombia

Escrito 19 abril 2020 - 08:44

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.


delphi
  1. procedure TForm9.BtnGetDataClick(Sender: TObject);
  2. Var
  3. DataSetList : TFDJSONDataSets;
  4. Begin
  5. //--------- Server Part ------------------
  6. DataSetList := TFDJSONDataSets.Create;
  7. TFDJSONDataSetsWriter.ListAdd(DataSetList, FDQuery1);
  8.  
  9. //--------- Client part ------------------
  10. FDMemTable1.Close;
  11. FDMemTable1.AppendData(TFDJSONDataSetsReader.GetListValue(DataSetList, 0));
  12. end;
  13.  
  14. procedure TForm9.BtnApplyUpdatesClick(Sender: TObject);
  15. Var
  16. Deltas: TFDJSONDeltas;
  17. LApply: IFDJSONDeltasApplyUpdates;
  18. begin
  19.  
  20. //--------- Client part ------------------
  21. if FDMemTable1.State in dsEditModes then
  22. FDMemTable1.Post;
  23.  
  24. Deltas := TFDJSONDeltas.Create;
  25. TFDJSONDeltasWriter.ListAdd(Deltas, 'users', FDMemTable1);
  26.  
  27. //--------- Server Part ------------------
  28. LApply := TFDJSONDeltasApplyUpdates.Create(Deltas);
  29.  
  30. LApply.ApplyUpdates('users', FDQuery1.Command);
  31. if LApply.Errors.Count > 0 then
  32. raise Exception.Create(LApply.Errors.Strings.Text);
  33. end;

Archivos adjuntos


  • 0




IP.Board spam blocked by CleanTalk.