domingo, 21 de junio de 2015

Finalización del segundo reporte

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 */

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 */

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


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