Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-05-2023
Elias011267 Elias011267 is offline
Miembro
 
Registrado: jul 2020
Posts: 73
Poder: 4
Elias011267 Va por buen camino
Datasnap no puedo actualizar con deltas

Hola que tal. He comenzado en el camino de datasnap rest, Ya comence mi aplicacion, decidi trabajar en la modalidad firedac en server y client (solo app delphi) uso el componente Data.FireDACJSONReflect, para tal fin. La conexion remota lo hace correctamente y relleno mis objetos (list box y Dbgrid) perfectamente. El problema es que aun no agarro el tino cuando voy a actualizar las tablas ya que lo hago con los deltas, se supone que con unas cuantas lineas de codigo debería funcionar, pero aun no lo consigo. lo he hecho de manera automatica y de manera manual pero en ambas no funciona. Abajo les muestro el codigo para ver si alguien me dice donde esta mi falla
***********************
Código Delphi [-]
//Servidor modo manual
procedure TServerMethods1.act_movilizar(listadelta: tfdjsondeltas);
var
  LAct: IFDJSONDeltasApplyUpdates;
  taux: tfdmemtable;
  tsql: string;
begin
  lact:= tfdjsondeltasapplyupdates.Create(listadelta);
  taux:= lact.Values[0];
  taux.Filterchanges:= [rtmodified, rtinserted, rtdeleted];
  taux.First;
  try
    while not taux.Eof do
    begin
      if taux.UpdateStatus=  usmodified then
      begin
        tsql:= 'update movilizador set mov_telefono= '+
          taux.FieldByName('mov_telefono').Text +'where mov_cedula= ' +
          taux.FieldByName('mov_cedula').Text  ;
          conexion.ExecSQL(tsql);
      end;
      taux.Next;
    end;
  conexion.Commit;
  except on e:exception do
  begin
    conexion.Rollback;
    raise Exception.Create(LAct.Errors.Strings.Text);
  end;
 end;
end;

Código Delphi [-]
//Metodo Servidor Modo Automatico
procedure TServerMethods1.act_movilizador(const ADeltaList: TFDJSONDeltas);
var
  LAct: IFDJSONDeltasApplyUpdates;
begin
  LAct := TFDJSONDeltasApplyUpdates.Create(ADeltaList);
  conexion.StartTransaction;
  LAct.ApplyUpdates(0,qmovilizador.Command);
  if LAct.Errors.Count > 0 then
  begin
     raise Exception.Create(LAct.Errors.Strings.Text);
     conexion.Rollback
  end else conexion.Commit;
end;

Código Delphi [-]
//Metodo en cliente
uses ClientModuleUnit2;
procedure TForm1.act_movilizadores;
var
  lisdelta: tfdjsondeltas;
begin
  if tmoviliza.State in dseditmodes then tmoviliza.Post;
  lisdelta:= tfdjsondeltas.Create;
  tfdjsondeltaswriter.ListAdd(lisdelta, tmoviliza);
  ClientModule2.ServerMethods1Client.act_movilizador(lisdelta);
end;
/



***** Gracias
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
No puedo grabar en un servidor datasnap tulio Varios 3 22-09-2015 13:15:05
Como puedo actualizar el debian desde Internet georkis Linux 4 18-08-2008 16:34:56
No puedo actualizar el Spybot mefixxto Seguridad 2 24-05-2008 20:18:24
Como puedo actualizar una tabla con procedimientos subzero Firebird e Interbase 3 29-01-2004 18:18:42
no puedo actualizar una tabla jzginez Firebird e Interbase 8 07-12-2003 02:38:12


La franja horaria es GMT +2. Ahora son las 16:58:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi