DatabaseErrorType Enumeration

The deferent types of errors

Definition

Namespace: Firefly.Box.Data.DataProvider
Assembly: Firefly.Box (in Firefly.Box.dll) Version: debug-master-v:33791
C#
public enum DatabaseErrorType

Example

This example demonstrates the usage of DatabaseErrorHandling
This example is in the form of Unit Tests. It references the NUnit framework. This framework can be downloaded from www.NUnit.org. For more information about unit testing visit: www.NUnit.org.
This example is based on test data. The code for the entities included in this test data can be found in the documentation of Entity
C#
using System;
using System.Collections.Generic;
using System.Text;
using Firefly.Box.Data.DataProvider;
using NUnit.Framework;
using Firefly.Box;
using Firefly.Box.Testing;

namespace TestFirefly.Box.Documentation
{
    [TestFixture]
    public class DatabaseErrorHandling
    {
        [Test]
        public void DatabaseErrorHandlingEventSequence()
        {
            var jobs = new Pubs.Jobs();
            jobs.InitializeWithTestData();

            var bp = new BusinessProcess()
            {
                From = jobs,
                Activity = Activities.Insert
            };

            string eventSequence = "";
            bp.PreviewDatabaseError += e =>
            {
                eventSequence += "PreviewDatabaseError " + e.ErrorType + "\n";
                e.HandlingStrategy = DatabaseErrorHandlingStrategy.Rollback;
            };
            bp.DatabaseErrorOccurred += e => eventSequence += "DatabaseErrorOccurred " + e.ErrorType + "\n";
            var handler = bp.Handlers.AddDatabaseErrorHandler(DatabaseErrorType.DuplicateIndex);
            handler.Invokes += e => eventSequence += "DatabaseErrorHandler " + e.ErrorType + "\n";
            bp.ForFirstRow(() =>
            {
                jobs.Id.Value = 1;//Duplicate index error, because job with id 1 already exists
            });
            eventSequence.ShouldBe("PreviewDatabaseError DuplicateIndex\n" +
                            "DatabaseErrorHandler DuplicateIndex\n" +
                            "DatabaseErrorOccurred DuplicateIndex\n");
        }
    }
}

Members

AllErrors0 Represents any and all errors
UnknownError1 An error that is not specificly defined
DuplicateIndex2 Occurs when values are updated or inserted to the database, and at least one of the unique contraints is violated
LockedRow3 An attempt to lock a row failed because the row is already locked by another session
DataChangeFailed4 An attempt to perform update, insert or delete failed for an unspecified reason
ConstraintFailed5 
RowDoesNotExist6 
RowWasChangedSinceLoaded7 
Deadlock8 
ReadOnlyEntityUpdate9 
TriggerFailed10 
NullInOnlyOnePartOfDateTimePair11 
FailedToInitializeEntity12 
InvalidSQLStatement13 
UpdatedRowWasChangedSinceLoaded14 
TransactionRolledBack15 

See Also