|
From: <fab...@us...> - 2009-02-03 12:45:35
|
Revision: 4017
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4017&view=rev
Author: fabiomaulo
Date: 2009-02-03 12:45:32 +0000 (Tue, 03 Feb 2009)
Log Message:
-----------
Example of OracleClientExceptionConverterExample
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/SQLExceptionConversionTest.cs
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/OracleClientExceptionConverterExample.cs
Added: trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/OracleClientExceptionConverterExample.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/OracleClientExceptionConverterExample.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/OracleClientExceptionConverterExample.cs 2009-02-03 12:45:32 UTC (rev 4017)
@@ -0,0 +1,31 @@
+using System;
+using System.Data.OracleClient;
+using NHibernate.Exceptions;
+using NHibernate.SqlCommand;
+
+namespace NHibernate.Test.ExceptionsTest
+{
+ public class OracleClientExceptionConverterExample : ISQLExceptionConverter
+ {
+ #region ISQLExceptionConverter Members
+
+ public ADOException Convert(Exception sqlException, string message, SqlString sql)
+ {
+ var sqle = ADOExceptionHelper.ExtractDbException(sqlException) as OracleException;
+ if (sqle != null)
+ {
+ if (sqle.Code == 1036)
+ {
+ return new ConstraintViolationException(message, sqle.InnerException, sql, null);
+ }
+ if (sqle.Code == 942)
+ {
+ return new SQLGrammarException(message, sqle.InnerException, sql);
+ }
+ }
+ return SQLStateConverter.HandledNonSpecificException(sqlException, message, sql);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/SQLExceptionConversionTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/SQLExceptionConversionTest.cs 2009-02-03 04:21:15 UTC (rev 4016)
+++ trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/SQLExceptionConversionTest.cs 2009-02-03 12:45:32 UTC (rev 4017)
@@ -18,16 +18,21 @@
protected override IList Mappings
{
- get { return new string[] { "ExceptionsTest.User.hbm.xml", "ExceptionsTest.Group.hbm.xml" }; }
+ get { return new[] { "ExceptionsTest.User.hbm.xml", "ExceptionsTest.Group.hbm.xml" }; }
}
protected override void Configure(Cfg.Configuration configuration)
{
if(Dialect is MsSql2000Dialect)
{
- configuration.SetProperty(NHibernate.Cfg.Environment.SqlExceptionConverter,
+ configuration.SetProperty(Cfg.Environment.SqlExceptionConverter,
typeof (MSSQLExceptionConverterExample).AssemblyQualifiedName);
}
+ if (Dialect is Oracle8iDialect)
+ {
+ configuration.SetProperty(Cfg.Environment.SqlExceptionConverter,
+ typeof(OracleClientExceptionConverterExample).AssemblyQualifiedName);
+ }
}
[Test]
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-03 04:21:15 UTC (rev 4016)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-03 12:45:32 UTC (rev 4017)
@@ -65,6 +65,7 @@
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Data" />
+ <Reference Include="System.Data.OracleClient" />
<Reference Include="System.Transactions" />
<Reference Include="System.Xml" />
</ItemGroup>
@@ -197,6 +198,7 @@
<Compile Include="Events\Collections\Values\ValuesBagCollectionEventFixture.cs" />
<Compile Include="ExceptionsTest\Group.cs" />
<Compile Include="ExceptionsTest\MSSQLExceptionConverterExample.cs" />
+ <Compile Include="ExceptionsTest\OracleClientExceptionConverterExample.cs" />
<Compile Include="ExceptionsTest\PropertyAccessExceptionFixture.cs" />
<Compile Include="ExceptionsTest\SQLExceptionConversionTest.cs" />
<Compile Include="ExceptionsTest\User.cs" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|