From: <jul...@us...> - 2010-09-17 16:23:20
|
Revision: 5189 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5189&view=rev Author: julian-maughan Date: 2010-09-17 16:23:14 +0000 (Fri, 17 Sep 2010) Log Message: ----------- Deletion omitted from previous commit (rev. 5188) Removed Paths: ------------- trunk/nhibernate/src/NHibernate/Dialect/Sybase11Dialect.cs Deleted: trunk/nhibernate/src/NHibernate/Dialect/Sybase11Dialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/Sybase11Dialect.cs 2010-09-17 16:13:14 UTC (rev 5188) +++ trunk/nhibernate/src/NHibernate/Dialect/Sybase11Dialect.cs 2010-09-17 16:23:14 UTC (rev 5189) @@ -1,93 +0,0 @@ -using System; -using NHibernate.Dialect; -using NHibernate.SqlCommand; -using NHibernate.Util; - -namespace NHibernate.Dialect -{ - /// <summary> - /// This is a subclass of SybaseDialect for sybase 11 databases (specifically tested against 11.9.2). 11.9.2 does not support ANSI JOINs - /// therefore we have to provide a special join fragment for left/right joins (*= and =* respectively). - /// </summary> - public class Sybase11Dialect : SybaseDialect - { - public override JoinFragment CreateOuterJoinFragment() - { - return new Sybase11JoinFragment(); - } - } - - /// <summary> - /// This class is basically a port of the hibernate 3.2 Sybase 11 join fragment. It uses concepts from that join fragment and the Oracle join fragment in NHibernate - /// </summary> - internal class Sybase11JoinFragment : JoinFragment - { - private readonly SqlStringBuilder afterFrom = new SqlStringBuilder(); - private readonly SqlStringBuilder afterWhere = new SqlStringBuilder(); - - public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, JoinType joinType) - { - AddCrossJoin(tableName, alias); - - for ( int j=0; j<fkColumns.Length; j++) - { - //full joins are not supported.. yet! - if (joinType==JoinType.FullJoin ) throw new InvalidOperationException("full joins are not supported yet"); - - afterWhere.Add(" and " + fkColumns[j] ); - - if (joinType==JoinType.LeftOuterJoin) afterWhere.Add("*"); - afterWhere.Add("="); - if (joinType==JoinType.RightOuterJoin) afterWhere.Add("*"); - - afterWhere.Add (alias + StringHelper.Dot + pkColumns[j]); - } - } - - public override SqlString ToFromFragmentString - { - get { return afterFrom.ToSqlString(); } - } - - public override SqlString ToWhereFragmentString - { - get { return afterWhere.ToSqlString(); } - } - - public override void AddJoins(SqlString fromFragment, SqlString whereFragment) - { - afterFrom.Add(fromFragment); - afterWhere.Add(whereFragment); - } - - public override void AddCrossJoin(string tableName, string alias) - { - afterFrom.Add(StringHelper.CommaSpace) - .Add(tableName) - .Add(" ") - .Add(alias); - } - - public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, JoinType joinType, - SqlString on) - { - AddJoin(tableName, alias, fkColumns, pkColumns, joinType); - AddCondition(on); - } - - public override bool AddCondition(string condition) - { - return AddCondition(afterWhere, condition); - } - - public override bool AddCondition(SqlString condition) - { - return AddCondition(afterWhere, condition); - } - - public override void AddFromFragmentString(SqlString fromFragmentString) - { - afterFrom.Add(fromFragmentString); - } - } -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |