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. |