Welcome Guest, you are in: Login

devio dbscript ScrewTurn Wiki

RSS RSS

Navigation





Search the wiki
»

PoweredBy

Page History: dbo uspLogError (procedure)

Compare Page Revisions



« Older Revision - Back to Page History - Newer Revision »


Page Revision: 2010/01/09 18:08


wikibot

procedure dbo.uspLogError
DescriptionLogs error information in the ErrorLog table about the error that caused execution to jump to the CATCH block of a TRY...CATCH construct. Should be executed from within the scope of a CATCH block otherwise it will return without inserting error information.

-- uspLogError logs error information in the ErrorLog table about the 
-- error that caused execution to jump to the CATCH block of a 
-- TRY...CATCH construct. This should be executed from within the scope 
-- of a CATCH block otherwise it will return without inserting error 
-- information. 
CREATE PROCEDURE [dbo].[uspLogError] 
    @ErrorLogID [int] = 0 OUTPUT -- contains the ErrorLogID of the row inserted
AS                               -- by uspLogError in the ErrorLog table
BEGIN
    SET NOCOUNT ON;

    -- Output parameter value of 0 indicates that error 
    -- information was not logged
    SET @ErrorLogID = 0;

    BEGIN TRY
        -- Return if there is no error information to log
        IF ERROR_NUMBER() IS NULL
            RETURN;

        -- Return if inside an uncommittable transaction.
        -- Data insertion/modification is not allowed when 
        -- a transaction is in an uncommittable state.
        IF XACT_STATE() = -1
        BEGIN
            PRINT 'Cannot log error since the current transaction is in an uncommittable state. ' 
                + 'Rollback the transaction before executing uspLogError in order to successfully log error information.';
            RETURN;
        END

        INSERT [dbo].[ErrorLog] 
            (
            [UserName], 
            [ErrorNumber], 
            [ErrorSeverity], 
            [ErrorState], 
            [ErrorProcedure], 
            [ErrorLine], 
            [ErrorMessage]
            ) 
        VALUES 
            (
            CONVERT(sysname, CURRENT_USER), 
            ERROR_NUMBER(),
            ERROR_SEVERITY(),
            ERROR_STATE(),
            ERROR_PROCEDURE(),
            ERROR_LINE(),
            ERROR_MESSAGE()
            );

        -- Pass back the ErrorLogID of the row inserted
        SET @ErrorLogID = @@IDENTITY;
    END TRY
    BEGIN CATCH
        PRINT 'An error occurred in stored procedure uspLogError: ';
        EXECUTE [dbo].[uspPrintError];
        RETURN -1;
    END CATCH
END;

Dependency TypeObject TypeReferenced Object
InsertTabledbo.ErrorLog
ExecuteProceduredbo.uspPrintError

Reference TypeObject TypeReferencing ObjectChild TypeChild Object
ExecuteProcedureHumanResources.uspUpdateEmployeeHireInfo
ExecuteProcedureHumanResources.uspUpdateEmployeeLogin
ExecuteProcedureHumanResources.uspUpdateEmployeePersonalInfo
ExecuteTableProduction.WorkOrderTriggeriWorkOrder
ExecuteTableProduction.WorkOrderTriggeruWorkOrder
ExecuteTablePurchasing.PurchaseOrderDetailTriggeriPurchaseOrderDetail
ExecuteTablePurchasing.PurchaseOrderDetailTriggeruPurchaseOrderDetail
ExecuteTablePurchasing.PurchaseOrderHeaderTriggeruPurchaseOrderHeader
ExecuteTablePurchasing.VendorTriggerdVendor
ExecuteTableSales.SalesOrderDetailTriggeriduSalesOrderDetail
ExecuteTableSales.SalesOrderHeaderTriggeruSalesOrderHeader
ExecuteTableSales.StoreTriggeriStore

ScrewTurn Wiki version 3.0.1.400. Some of the icons created by FamFamFam.