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

From dbscript Online Help
Jump to: navigation, search
 
(2 intermediate revisions 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
 
|- valign="top"
 
|- valign="top"
 
| '''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 ===
 
<pre>
 
<pre>
 
-- uspLogError logs error information in the ErrorLog table about the  
 
-- uspLogError logs error information in the ErrorLog table about the  
Line 74: Line 74:
 
</pre>
 
</pre>
  
 
+
=== References ===
 
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse"
 
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse"
 
|- style="background:silver"
 
|- style="background:silver"
Line 81: 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 93: Line 93:
 
|}
 
|}
  
 
+
=== Dependencies ===
 
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse"
 
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse"
 
|- style="background:silver"
 
|- style="background:silver"
Line 103: Line 103:
 
| '''Child Object
 
| '''Child Object
  
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
Line 110: Line 110:
 
|  
 
|  
 
|  
 
|  
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
Line 117: Line 117:
 
|  
 
|  
 
|  
 
|  
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
Line 124: Line 124:
 
|  
 
|  
 
|  
 
|  
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 131: Line 131:
 
| Trigger
 
| Trigger
 
| iWorkOrder
 
| iWorkOrder
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 138: Line 138:
 
| Trigger
 
| Trigger
 
| uWorkOrder
 
| uWorkOrder
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 145: Line 145:
 
| Trigger
 
| Trigger
 
| iPurchaseOrderDetail
 
| iPurchaseOrderDetail
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 152: Line 152:
 
| Trigger
 
| Trigger
 
| uPurchaseOrderDetail
 
| uPurchaseOrderDetail
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 159: Line 159:
 
| Trigger
 
| Trigger
 
| uPurchaseOrderHeader
 
| uPurchaseOrderHeader
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 166: Line 166:
 
| Trigger
 
| Trigger
 
| dVendor
 
| dVendor
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 173: Line 173:
 
| Trigger
 
| Trigger
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 180: Line 180:
 
| Trigger
 
| Trigger
 
| uSalesOrderHeader
 
| uSalesOrderHeader
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Table
 
| Table
Line 188: Line 188:
 
| iStore
 
| iStore
 
|}
 
|}
 
  
  

Latest revision as of 23:15, 23 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