Ver Mensaje Individual
  #7  
Antiguo 11-03-2015
Esmeralda Ramos Esmeralda Ramos is offline
Registrado
NULL
 
Registrado: mar 2015
Posts: 9
Reputación: 0
Esmeralda Ramos Va por buen camino
Si perdon adjunto la imagen en un .zip, cambie insolation a xiReadCommitted pero esta mañana me presento el mismo problema.
Lo que note es que Cuando un usuario a esta modificando una Orden de Pago se realizan una serie de select para que puedan elegir los datos por ejemplo el tipo de impuesto.
Y si en ese mismo instante otro usuario b esta intentando eliminar un registro de una orden de pago es bloqueado por el usuario "a" hasta que este termina.
las transacciones las realizo de la siguiente manera y estan en un mismo evento en el boton aceptar:
Código Delphi [-]
procedure TfrmOrdenPagoEdicion.BitBtn3Click(Sender: TObject);
begin
try
    dmModulo.CNDHBD.StartTransaction;

    qryActualiza:=Tadquery.Create(self);
    qryActualiza.Connection:= dmModulo.CNDHBD;


    qryActualiza.close;
    qryActualiza.sql.text:=' Delete from OrdenPagoPresupuesto where AñoOrdenPago = :Ao and OrdenPago = :OP and documento = :documento '+
                           '  and UnidadResponsable = :UR '+
                           '  and AñoEstructuraProgramatica = :AOE and EstructuraProgramatica = :EP and Area = :Area and '+
                           ' ClavePresupuestal = :CP and Mes = :Mes ';
     qryActualiza.parambyname('AO').asinteger:= strtoint(vgAoOP);
     qryActualiza.parambyname('OP').asinteger:= strtoint(vgOP);
     qryActualiza.parambyname('Documento').asinteger:= qryOrdenPagoPresupuesto.fieldbyname('Documento').asinteger;
     qryActualiza.parambyname('UR').asinteger:= qryOrdenPagoPresupuesto.fieldbyname('UnidadResponsable').asinteger;
     qryActualiza.parambyname('AOE').asinteger:= qryOrdenPagoPresupuesto.fieldbyname('AñoEstructuraProgramatica').asinteger;
     qryActualiza.parambyname('EP').asinteger:= qryOrdenPagoPresupuesto.fieldbyname('EstructuraProgramatica').asinteger;
     qryActualiza.parambyname('Area').asinteger:= qryOrdenPagoPresupuesto.fieldbyname('Area').asinteger;
     qryActualiza.parambyname('CP').asinteger:= qryOrdenPagoPresupuesto.fieldbyname('ClavePresupuestal').asinteger;
     qryActualiza.parambyname('Mes').asinteger:= qryOrdenPagoPresupuesto.fieldbyname('Mes').asinteger;

     qryActualiza.ExecSQL;

    dmModulo.CNDHBD.Commit;

except
       dmModulo.CNDHBD.Rollback;
       raise;
 end;
end.
Esta falla se presento desde que cambie el engine por firedac.
Muchas gracias por la ayuda

Última edición por nlsgarcia fecha: 11-03-2015 a las 17:27:31. Razón: Sintaxis Delphi
Responder Con Cita