|
From: <fab...@us...> - 2008-09-29 20:27:13
|
Revision: 3801
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3801&view=rev
Author: fabiomaulo
Date: 2008-09-29 20:26:50 +0000 (Mon, 29 Sep 2008)
Log Message:
-----------
Fix NH-1503 (Sybase.AdoNet2 Dialect&Drire by Nathan Blair)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/NHibernate.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate/Dialect/SybaseAdoNet12Dialect.cs
trunk/nhibernate/src/NHibernate/Driver/SybaseAdoNet12ClientDriver.cs
Added: trunk/nhibernate/src/NHibernate/Dialect/SybaseAdoNet12Dialect.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/SybaseAdoNet12Dialect.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Dialect/SybaseAdoNet12Dialect.cs 2008-09-29 20:26:50 UTC (rev 3801)
@@ -0,0 +1,99 @@
+using NHibernate.Cfg;
+
+namespace NHibernate.Dialect
+{
+ /// <summary>
+ /// An SQL dialect compatible with Sybase.
+ /// </summary>
+ /// <remarks>
+ /// <p>
+ /// This dialect probably will not work with schema-export. If anyone out there
+ /// can fill in the ctor with DbTypes to Strings that would be helpful.
+ /// </p>
+ /// The SybaseDialect defaults the following configuration properties:
+ /// <list type="table">
+ /// <listheader>
+ /// <term>Property</term>
+ /// <description>Default Value</description>
+ /// </listheader>
+ /// <item>
+ /// <term>use_outer_join</term>
+ /// <description><see langword="true" /></description>
+ /// </item>
+ /// <item>
+ /// <term>connection.driver_class</term>
+ /// <description><see cref="NHibernate.Driver.SybaseClientDriver" /></description>
+ /// </item>
+ /// <item>
+ /// <term>prepare_sql</term>
+ /// <description><see langword="false" /></description>
+ /// </item>
+ /// </list>
+ /// </remarks>
+ public class SybaseAdoNet12Dialect : Dialect
+ {
+ /// <summary></summary>
+ public SybaseAdoNet12Dialect()
+ {
+ DefaultProperties[Environment.ConnectionDriver] = "NHibernate.Driver.SybaseAdoNet12ClientDriver";
+ DefaultProperties[Environment.PrepareSql] = "true";
+ }
+
+ /// <summary></summary>
+ public override string AddColumnString
+ {
+ get { return "add"; }
+ }
+
+ /// <summary></summary>
+ public override string NullColumnString
+ {
+ get { return " null"; }
+ }
+
+ /// <summary></summary>
+ public override bool QualifyIndexName
+ {
+ get { return false; }
+ }
+
+ /// <summary></summary>
+ public override string ForUpdateString
+ {
+ get { return string.Empty; }
+ }
+
+ /// <summary></summary>
+ public override bool SupportsIdentityColumns
+ {
+ get { return true; }
+ }
+
+ /// <summary></summary>
+ public override string IdentitySelectString
+ {
+ get { return "select @@identity"; }
+ }
+
+ /// <summary></summary>
+ public override string IdentityColumnString
+ {
+ get { return "IDENTITY NOT NULL"; }
+ }
+
+ /// <summary></summary>
+ public override string NoColumnsInsertString
+ {
+ get { return "DEFAULT VALUES"; }
+ }
+
+ /// <remarks>
+ /// Sybase does not support quoted aliases, this function thus returns
+ /// <c>aliasName</c> as is.
+ /// </remarks>
+ public override string QuoteForAliasName(string aliasName)
+ {
+ return aliasName;
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate/Driver/SybaseAdoNet12ClientDriver.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Driver/SybaseAdoNet12ClientDriver.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate/Driver/SybaseAdoNet12ClientDriver.cs 2008-09-29 20:26:50 UTC (rev 3801)
@@ -0,0 +1,49 @@
+namespace NHibernate.Driver
+{
+ /// <summary>
+ /// The SybaseClientDriver Driver provides a database driver for Sybase.
+ /// </summary>
+ /// <remarks>
+ /// It has been reported to work with the <see cref="Dialect.MsSql2000Dialect"/>.
+ /// </remarks>
+ public class SybaseAdoNet12ClientDriver : ReflectionBasedDriver
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="SybaseClientDriver"/> class.
+ /// </summary>
+ /// <exception cref="HibernateException">
+ /// Thrown when the Sybase.Data.AseClient assembly can not be loaded.
+ /// </exception>
+ public SybaseAdoNet12ClientDriver()
+ : base(
+ "Sybase.AdoNet2.AseClient",
+ "Sybase.Data.AseClient.AseConnection",
+ "Sybase.Data.AseClient.AseCommand")
+ {
+ }
+
+ /// <summary>
+ /// Sybase.Data.AseClient uses named parameters in the sql.
+ /// </summary>
+ /// <value><see langword="true" /> - Sybase uses <c>@</c> in the sql.</value>
+ public override bool UseNamedPrefixInSql
+ {
+ get { return true; }
+ }
+
+ /// <summary></summary>
+ public override bool UseNamedPrefixInParameter
+ {
+ get { return true; }
+ }
+
+ /// <summary>
+ /// Sybase.Data.AseClient use the <c>@</c> to locate parameters in sql.
+ /// </summary>
+ /// <value><c>@</c> is used to locate parameters in sql.</value>
+ public override string NamedPrefix
+ {
+ get { return "@"; }
+ }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2008-09-29 20:10:50 UTC (rev 3800)
+++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2008-09-29 20:26:50 UTC (rev 3801)
@@ -2,7 +2,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>8.0.50727</ProductVersion>
+ <ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{5909BFE7-93CF-4E5F-BE22-6293368AF01D}</ProjectGuid>
<OutputType>Library</OutputType>
@@ -598,10 +598,12 @@
<Compile Include="Dialect\Schema\MsSqlMetaData.cs" />
<Compile Include="Dialect\Schema\OracleMetaData.cs" />
<Compile Include="Dialect\Sybase11Dialect.cs" />
+ <Compile Include="Dialect\SybaseAdoNet12Dialect.cs" />
<Compile Include="Driver\ASA10ClientDriver.cs" />
<Compile Include="Driver\ISqlParameterFormatter.cs" />
<Compile Include="Driver\SqlStringFormatter.cs" />
<Compile Include="Criterion\SubqueryProjection.cs" />
+ <Compile Include="Driver\SybaseAdoNet12ClientDriver.cs" />
<Compile Include="EmptyInterceptor.cs" />
<Compile Include="Engine\ActionQueue.cs" />
<Compile Include="Engine\AssociationKey.cs" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|