Sábado 20 de Junio
Hora inicio: 6:00 p.m
Hora Fin: 12:30 am
6:00 pm - 8:00 pm
Se finaliza la implementacion del primer reporte en su totalidad.
Se termina de codificar y perfeccionar el algoritmo SQL para la consulta total y desglose de lotes por indice de productividad de todas las actividades.
8:00 pm - 8:30 pm
Se implementa el segundo filtro por tipo de actividad
alter PROCEDURE APSP_ProductividadPorMaquina
-- Add the parameters for the stored procedure here
@Ciclo int, @Lote int, @Cultivo int, @TipoReporte VARCHAR(50)
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
/** Si la transaccion no ha sido comenzada a correr anteriormente, entonces la iniciamos
* sino, simplemente realizamos un checkpoint */
IF @@TRANCOUNT = 0
BEGIN TRANSACTION
ELSE
SAVE TRANSACTION ProdByMachTran
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN TRY
/* Para este caso se define el Indice de Productividad de una maquina como
el cociente del costo de todos los lotes en los que trabajo entre el area de cada lote */
-- Add the parameters for the stored procedure here
@Ciclo int, @Lote int, @Cultivo int, @TipoReporte VARCHAR(50)
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
/** Si la transaccion no ha sido comenzada a correr anteriormente, entonces la iniciamos
* sino, simplemente realizamos un checkpoint */
IF @@TRANCOUNT = 0
BEGIN TRANSACTION
ELSE
SAVE TRANSACTION ProdByMachTran
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN TRY
/* Para este caso se define el Indice de Productividad de una maquina como
el cociente del costo de todos los lotes en los que trabajo entre el area de cada lote */
9:00 pm - 9:25 pm
Se logra codificar el tercer filtro por tipo de solicitud
alter PROCEDURE APSP_ProductividadPorMaquina
-- Add the parameters for the stored procedure here
@Ciclo int, @Lote int, @Cultivo int, @TipoReporte VARCHAR(50)
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
/** Si la transaccion no ha sido comenzada a correr anteriormente, entonces la iniciamos
* sino, simplemente realizamos un checkpoint */
IF @@TRANCOUNT = 0
BEGIN TRANSACTION
ELSE
SAVE TRANSACTION ProdByMachTran
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN TRY
/* Para este caso se define el Indice de Productividad de una maquina como
el cociente del costo de todos los lotes en los que trabajo entre el area de cada lote */
-- Add the parameters for the stored procedure here
@Ciclo int, @Lote int, @Cultivo int, @TipoReporte VARCHAR(50)
AS
BEGIN
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
/** Si la transaccion no ha sido comenzada a correr anteriormente, entonces la iniciamos
* sino, simplemente realizamos un checkpoint */
IF @@TRANCOUNT = 0
BEGIN TRANSACTION
ELSE
SAVE TRANSACTION ProdByMachTran
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN TRY
/* Para este caso se define el Indice de Productividad de una maquina como
el cociente del costo de todos los lotes en los que trabajo entre el area de cada lote */
11:00 pm - 12:30 am
Se implementa el codigo de manejo de errores, y se invierto cierto tiempo en investigacion y casos de ensayo y error para mejorar la eficiencia el desempeño de las consultas.
END
IF @TipoReporte = 'Por Cultivo'
BEGIN
declare @a as int;
END
IF @@TRANCOUNT = 1
COMMIT
END TRY
BEGIN CATCH
DECLARE @error INT, @message VARCHAR(4000), @xstate INT;
SELECT @error = ERROR_NUMBER(), @message = ERROR_MESSAGE(), @xstate = XACT_STATE();
IF @xstate = -1
ROLLBACK;
IF @xstate = 1 and @@TRANCOUNT = 0
ROLLBACK
IF @xstate = 1 and @@TRANCOUNT > 0
ROLLBACK TRANSACTION ProdByMachTran;
RAISERROR ('ProdByMachTran: %d: %s', 16, 1, @error, @message) ;
END CATCH
END
GO
IF @TipoReporte = 'Por Cultivo'
BEGIN
declare @a as int;
END
IF @@TRANCOUNT = 1
COMMIT
END TRY
BEGIN CATCH
DECLARE @error INT, @message VARCHAR(4000), @xstate INT;
SELECT @error = ERROR_NUMBER(), @message = ERROR_MESSAGE(), @xstate = XACT_STATE();
IF @xstate = -1
ROLLBACK;
IF @xstate = 1 and @@TRANCOUNT = 0
ROLLBACK
IF @xstate = 1 and @@TRANCOUNT > 0
ROLLBACK TRANSACTION ProdByMachTran;
RAISERROR ('ProdByMachTran: %d: %s', 16, 1, @error, @message) ;
END CATCH
END
GO
Bibliografía
Manejo de errores:
https://www.youtube.com/watch?v=BswGWNhrNSM
http://www.devjoker.com/contenidos/articulos/255/Control-de-errores-en-Transact-SQL.aspx

No hay comentarios.:
Publicar un comentario