Difference between revisions of "Dbo.uspLogError (procedure)"

From dbscript Online Help
Jump to: navigation, search
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:
  
 
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse"
 
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse"
|-
+
|- valign="top"
 
| '''Procedure
 
| '''Procedure
 
| dbo.uspLogError
 
| dbo.uspLogError
Line 8: Line 8:
 
| '''Description
 
| '''Description
 
| Logs 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.
 
| Logs 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.
|-
 
 
|}
 
|}
 
  
 
=== Source ===
 
=== Source ===
Line 83: Line 81:
 
| '''Referenced Object
 
| '''Referenced Object
  
|-
+
|- valign="top"
 
| Insert
 
| Insert
 
| Table
 
| Table
 
| [[dbo.ErrorLog_(table)|dbo.ErrorLog]]
 
| [[dbo.ErrorLog_(table)|dbo.ErrorLog]]
  
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
Line 105: Line 103:
 
| '''Child Object
 
| '''Child Object
  
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
Line 112: Line 110:
 
|  
 
|  
 
|  
 
|  
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
Line 119: Line 117:
 
|  
 
|  
 
|  
 
|  
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
Line 126: Line 124:
 
|  
 
|  
 
|  
 
|  
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 133: Line 131:
 
| Trigger
 
| Trigger
 
| iWorkOrder
 
| iWorkOrder
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 140: Line 138:
 
| Trigger
 
| Trigger
 
| uWorkOrder
 
| uWorkOrder
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 147: Line 145:
 
| Trigger
 
| Trigger
 
| iPurchaseOrderDetail
 
| iPurchaseOrderDetail
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 154: Line 152:
 
| Trigger
 
| Trigger
 
| uPurchaseOrderDetail
 
| uPurchaseOrderDetail
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 161: Line 159:
 
| Trigger
 
| Trigger
 
| uPurchaseOrderHeader
 
| uPurchaseOrderHeader
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 168: Line 166:
 
| Trigger
 
| Trigger
 
| dVendor
 
| dVendor
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 175: Line 173:
 
| Trigger
 
| Trigger
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 182: Line 180:
 
| Trigger
 
| Trigger
 
| uSalesOrderHeader
 
| uSalesOrderHeader
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table

Latest revision as of 00:15, 24 June 2010

wikibot[edit]

Procedure dbo.uspLogError
Description Logs 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.

Source[edit]

-- 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;

References[edit]

Dependency Type Object Type Referenced Object
Insert Table dbo.ErrorLog
Execute Procedure dbo.uspPrintError

Dependencies[edit]

Reference Type Object Type Referencing Object Child Type Child Object
Execute Procedure HumanResources.uspUpdateEmployeeHireInfo
Execute Procedure HumanResources.uspUpdateEmployeeLogin
Execute Procedure HumanResources.uspUpdateEmployeePersonalInfo
Execute Table Production.WorkOrder Trigger iWorkOrder
Execute Table Production.WorkOrder Trigger uWorkOrder
Execute Table Purchasing.PurchaseOrderDetail Trigger iPurchaseOrderDetail
Execute Table Purchasing.PurchaseOrderDetail Trigger uPurchaseOrderDetail
Execute Table Purchasing.PurchaseOrderHeader Trigger uPurchaseOrderHeader
Execute Table Purchasing.Vendor Trigger dVendor
Execute Table Sales.SalesOrderDetail Trigger iduSalesOrderDetail
Execute Table Sales.SalesOrderHeader Trigger uSalesOrderHeader
Execute Table Sales.Store Trigger iStore


automatically generated[edit]

procedure dbo.uspLogError
Description Logs 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 Type Object Type Referenced Object
Insert Table dbo.ErrorLog
Execute Procedure dbo.uspPrintError


Reference Type Object Type Referencing Object Child Type Child Object
Execute Procedure HumanResources.uspUpdateEmployeeHireInfo
Execute Procedure HumanResources.uspUpdateEmployeeLogin
Execute Procedure HumanResources.uspUpdateEmployeePersonalInfo
Execute Table Production.WorkOrder Trigger iWorkOrder
Execute Table Production.WorkOrder Trigger uWorkOrder
Execute Table Purchasing.PurchaseOrderDetail Trigger iPurchaseOrderDetail
Execute Table Purchasing.PurchaseOrderDetail Trigger uPurchaseOrderDetail
Execute Table Purchasing.PurchaseOrderHeader Trigger uPurchaseOrderHeader
Execute Table Purchasing.Vendor Trigger dVendor
Execute Table Sales.SalesOrderDetail Trigger iduSalesOrderDetail
Execute Table Sales.SalesOrderHeader Trigger uSalesOrderHeader
Execute Table Sales.Store Trigger iStore