Ver Mensaje Individual
  #1  
Antiguo 02-11-2022
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Reputación: 14
novato_erick Va por buen camino
DBXEXPRESS no actualiza en ciertas ocaciones campos

Hola chicos:

Es un gran placer saludarlos por este medio.

ultimamente me habian comunicado algunos usuarios que al realizar una actualización en un campo llamado cantidad en ocasiones no afecta dicho campo la actualización.

Código Delphi [-]
 trnActualizaStock := dmConecta.FBLINUXCONECTION.BeginTransaction;
    try
    cdsAgregaProductos.First;
    while not cdsAgregaProductos.Eof do
    begin
        cantdataset := cdsAgregaProductosCANTIDAD.AsFloat;
        // Consulta la cantidad de cada articulo para aumentarlo
        stockactual := cantidadDisponibleinv
          (cdsAgregaProductosID_PRODUCTO.AsInteger);
        // aumentar cantidad al stock
        nuevacantStock := AumentaCantArticulos(cantdataset, stockactual);
            with dmComprar.qAumentaStock do
            begin
              sql.Clear;
              sql.Text := 'UPDATE ARTICULOS SET CANTIDAD = :CANTIDAD, ' +
              'FECHA_INGRESOART= :FECHA_INGRESOART WHERE ID_ARTICULO = :ID_ARTICULO';
              ParamByName('FECHA_INGRESOART').AsDateTime :=
                dtpFechaIngresoCompra.DateTime;
              ParamByName('CANTIDAD').AsFloat := nuevacantStock;
              ParamByName('ID_ARTICULO').AsInteger :=
                cdsAgregaProductosID_PRODUCTO.AsInteger;
              Execsql;
            end;
        cdsAgregaProductos.Next;
    end;
    dmConecta.FBLINUXCONECTION.CommitFreeAndNil(trnActualizaStock);
    Except
    On e: exception do
    begin
      dmconecta.FBLINUXCONECTION.RollbackFreeAndNil(trnActualizaStock);
      ShowMessage('Error Encontrado' + e.Message);
      dmConecta.RegistraLog(Variables.Usuario + ' CON ERROR AL ACTUALIZAR CANTIDADES: ' +
      e.Message);
      Exito := False;
      Raise;
    end;

cabe aclarar que esto normalmente no sucede a diario es algo que puede ser 1 de 1000 transacciones por decir algo.

pero aún así sucede. alguien sabe el porqué puede pasar o cómo evitar orque el sistema no manda ningún error en transacción.

Saludos;

novato_erick
Responder Con Cita