Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cliente(s) y servidor (https://www.clubdelphi.com/foros/showthread.php?t=96317)

Elias011267 28-07-2023 15:31:36

Cliente(s) y servidor
 
Tengo un problema muy curioso en mi desarrollo del proyecto, es una aplicación bajo la plataforma datasnap rest con una aplicación servidor y 3 aplicaciones cliente. En las tres aplicaciones clientes hago las consultas al servidor correctamente, es decir, hay buena conexión, pero solo en una puedo actualizar las tablas. Lo que me tiene halándome los pelos es que las 3 aplicaciones cliente tiene el mismo código para actualizar y la Tmemtable tiene la misma estructura. Que norma no estoy cumpliendo que hace que dos aplicaciones no funcione la actualización?.

Aqui les dejo el fuente del metodo en el servidor
Código Delphi [-]
procedure TServerMethods1.act_contacto(listadelta: tfdjsondeltas);
var
 LApply: IFDJSONDeltasApplyUpdates;
begin
  LApply := TFDJSONDeltasApplyUpdates.Create(listadelta);
  conexion.StartTransaction;
  try
     LApply.ApplyUpdates(0, qconsulta.Command);
     if lapply.Errors.Count= 0 then conexion.Commit;
    except on e: Exception do
    begin
     raise Exception.Create('Error mensaje: '+ e.Message);
     conexion.Rollback;
    end;
  end;
end;
y aqui les dejo el codigo que tengo el los clientes
Código Delphi [-]
procedure Tfmovilizador.bvotoClick(Sender: TObject);
var
lisdeltas: tfdjsondeltas;
lisdata: TFDJSONDataSets;
begin
  if tcontacto.State in dseditmodes then tcontacto.Post;
  lisdeltas:= tfdjsondeltas.Create;
  tfdjsondeltaswriter.ListAdd(lisdeltas, tcontacto);
  clientmodule2.ServerMethods1Client.act_contacto(lisdeltas);
  tcontacto.Close;
//  Refresco tcontacto
  lisdata:= ClientModule2.ServerMethods1Client.getcontacto1
    (quotedstr(tmoviliza.FieldByName('mov_cedula').text));
  tcontacto.AppendData(TFDJSONDataSetsReader.GetListValue(lisdata,0));
  tcontacto.Open;
  tabcontrol1.ActiveTab:= Contacto;
end;

Es menester decirles que las consultas si funcionan bien en las 3 aplicaciones... Gracias de antemano

Neftali [Germán.Estévez] 31-07-2023 08:40:26

Cita:

Empezado por Elias011267 (Mensaje 552183)
... pero solo en una puedo actualizar las tablas.
Lo que me tiene halándome los pelos es que las 3 aplicaciones cliente tiene el mismo código para actualizar y la Tmemtable tiene la misma estructura.


Estaría bien que completaras la información diciendo cual es el error que obtienes.
¿Cual es el problema al intentar actualizar?

Elias011267 01-08-2023 14:53:17

Buen día, disculpa la tardanza en responder. Pude resolver el error (creo) al usar solo un método en el servidor para actualizar las tablas, anteriormente usa un método para cada tabla (a propósito es conveniente eso? el usar un método para todas las tablas ). En respuesta al Sr Estéves, no recibo mensaje de error, simplemente no actualizaba, ni adicionaba registro. Debo aprender a manejar excepciones de Firebird en delphi. Por el momento esta funcionando. Disculpen la molestia


La franja horaria es GMT +2. Ahora son las 14:38:34.

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