Ver Mensaje Individual
  #1  
Antiguo 14-06-2018
Avatar de Soa Pelaez
Soa Pelaez Soa Pelaez is offline
Miembro
 
Registrado: nov 2015
Posts: 133
Reputación: 9
Soa Pelaez Va por buen camino
TFDConection StartTransaction no hace el Rollback

Buen día.

Tengo el siguiente código donde valido una transacción con un campo llave numérico, en caso de error realizo un rollback de la transacción y el campo llave lo aumento e inicio la transacción, el guarda el registro pero igual me tira el error de que la transacción no se podía realizar por error en llave y esa es la transacción que se debería cancelar con el rollback.
Código Delphi [-]
//Conexion --> TFDConnection
//Squema --> TDSchemaAdapter
//
  Conexion.StartTransaction;
    try
      iErrors := Squema.ApplyUpdates(0);
      if iErrors = 0 then
      begin
        for x := 0 to Squema .Count - 1 do
        if Squema .DataSets[x].UpdatesPending then
        begin
          Squema .DataSets[x].CommitUpdates;
          Conexion.Commit; //09/12/2015
        end;
      end
      else
      begin
        Conexion.Rollback;
      end;
    except
      on e: Exception do
      begin
        Conexion.Rollback;
        raise;
      end;
    end;

Que error tengo en el código o que me falta para que cancele correctamente la transacción, uso un TFDConnection, TFDQuery, TDSchemaAdapter. La parte donde realizo el aumento de la llave numérica es en el evento OnError del TFDQuery.

Gracias de antemano.

Última edición por Soa Pelaez fecha: 14-06-2018 a las 22:14:50.
Responder Con Cita