|
From: <dar...@us...> - 2009-02-04 04:19:04
|
Revision: 4030
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4030&view=rev
Author: darioquintana
Date: 2009-02-04 04:18:37 +0000 (Wed, 04 Feb 2009)
Log Message:
-----------
Exception Converter example for PostgreSQL
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/PostgresExceptionConverterExample.cs
Added: trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/PostgresExceptionConverterExample.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/PostgresExceptionConverterExample.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/PostgresExceptionConverterExample.cs 2009-02-04 04:18:37 UTC (rev 4030)
@@ -0,0 +1,31 @@
+using System;
+using System.Data.Common;
+using NHibernate;
+using NHibernate.Exceptions;
+using NHibernate.SqlCommand;
+
+public class PostgresExceptionConverterExample : ISQLExceptionConverter
+{
+ #region ISQLExceptionConverter Members
+
+ public ADOException Convert(Exception sqlException, string message, SqlString sql)
+ {
+ var sqle = ADOExceptionHelper.ExtractDbException(sqlException) as DbException;
+ if (sqle != null)
+ {
+ string code = (string) sqle.GetType().GetProperty("Code").GetValue(sqle, null);
+
+ if (code == "23503")
+ {
+ return new ConstraintViolationException(message, sqle.InnerException, sql, null);
+ }
+ if (code == "42P01")
+ {
+ 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-04 03:40:06 UTC (rev 4029)
+++ trunk/nhibernate/src/NHibernate.Test/ExceptionsTest/SQLExceptionConversionTest.cs 2009-02-04 04:18:37 UTC (rev 4030)
@@ -33,6 +33,12 @@
configuration.SetProperty(Cfg.Environment.SqlExceptionConverter,
typeof(OracleClientExceptionConverterExample).AssemblyQualifiedName);
}
+
+ if (Dialect is PostgreSQL82Dialect)
+ {
+ configuration.SetProperty(Cfg.Environment.SqlExceptionConverter,
+ typeof(PostgresExceptionConverterExample).AssemblyQualifiedName);
+ }
}
[Test]
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-04 03:40:06 UTC (rev 4029)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-04 04:18:37 UTC (rev 4030)
@@ -196,6 +196,7 @@
<Compile Include="Events\Collections\IParentWithCollection.cs" />
<Compile Include="Events\Collections\Values\ParentWithCollectionOfValues.cs" />
<Compile Include="Events\Collections\Values\ValuesBagCollectionEventFixture.cs" />
+ <Compile Include="ExceptionsTest\PostgresExceptionConverterExample.cs" />
<Compile Include="ExceptionsTest\Group.cs" />
<Compile Include="ExceptionsTest\MSSQLExceptionConverterExample.cs" />
<Compile Include="ExceptionsTest\OracleClientExceptionConverterExample.cs" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|