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
[-]
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
[-]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
[-]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