[Adapdev-commits] Adapdev/src/Adapdev.Data/Sql Criteria.cs,1.8,1.9 ICriteria.cs,1.8,1.9 ISelectQuery
Status: Beta
Brought to you by:
intesar66
From: Sean M. <int...@us...> - 2006-03-15 04:34:24
|
Update of /cvsroot/adapdev/Adapdev/src/Adapdev.Data/Sql In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16961/src/Adapdev.Data/Sql Modified Files: Criteria.cs ICriteria.cs ISelectQuery.cs SelectQuery.cs Log Message: Index: Criteria.cs =================================================================== RCS file: /cvsroot/adapdev/Adapdev/src/Adapdev.Data/Sql/Criteria.cs,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Criteria.cs 21 Jan 2006 19:42:48 -0000 1.8 --- Criteria.cs 15 Mar 2006 04:34:20 -0000 1.9 *************** *** 40,44 **** this.AddAnd(); sb.Append("("); ! sb.Append(c.GetText().Replace("WHERE","")); sb.Append(") "); this.initialized = true; --- 40,44 ---- this.AddAnd(); sb.Append("("); ! sb.Append(c.GetText().Replace("WHERE","").Trim()); sb.Append(") "); this.initialized = true; *************** *** 46,50 **** } ! public virtual void AddCriteriaSeparator(CriteriaType ct) { if (ct == CriteriaType.AND) sb.Append(" AND "); --- 46,50 ---- } ! protected void AddCriteriaSeparator(CriteriaType ct) { if (ct == CriteriaType.AND) sb.Append(" AND "); *************** *** 108,111 **** --- 108,113 ---- public virtual void AddExists(ISqlQuery subSqlQuery) { + sb.Append(" EXISTS (" + subSqlQuery.Statement + ") "); + this.initialized = true; } *************** *** 136,139 **** --- 138,145 ---- public virtual void AddIn(string columnName, ISqlQuery subSqlQuery) { + sb.Append(" "); + sb.Append(QueryHelper.GetPreDelimeter(this.type)); + sb.Append(columnName); + sb.Append(QueryHelper.GetPostDelimeter(this.type)); sb.Append(" IN ("); sb.Append(subSqlQuery.GetText()); *************** *** 145,149 **** --- 151,158 ---- { StringBuilder sbo = new StringBuilder(); + sb.Append(" "); + sb.Append(QueryHelper.GetPreDelimeter(this.type)); sb.Append(columnName); + sb.Append(QueryHelper.GetPostDelimeter(this.type)); sb.Append(" IN ("); IEnumerator enumerator = values.GetEnumerator(); *************** *** 203,206 **** --- 212,231 ---- } + public virtual void AddLike(string tableName, string columnName, object columnValue) + { + sb.Append(" "); + sb.Append(QueryHelper.GetPreDelimeter(this.type)); + sb.Append(tableName); + sb.Append(QueryHelper.GetPostDelimeter(this.type)); + sb.Append("."); + sb.Append(QueryHelper.GetPreDelimeter(this.type)); + sb.Append(columnName); + sb.Append(QueryHelper.GetPostDelimeter(this.type)); + sb.Append(" LIKE "); + sb.Append(QueryHelper.DressUp(columnValue,this.type)); + sb.Append(" "); + this.initialized = true; + } + public virtual void AddNotBetween(string columnName, object value1, object value2) { *************** *** 231,235 **** public virtual void AddNotExists(ISqlQuery subSqlQuery) { ! sb.Append(" EXISTS (" + subSqlQuery.GetText() + ") "); this.initialized = true; } --- 256,260 ---- public virtual void AddNotExists(ISqlQuery subSqlQuery) { ! sb.Append(" NOT EXISTS (" + subSqlQuery.GetText() + ") "); this.initialized = true; } *************** *** 238,241 **** --- 263,270 ---- { StringBuilder sbo = new StringBuilder(); + sb.Append(" "); + sb.Append(QueryHelper.GetPreDelimeter(this.type)); + sb.Append(columnName); + sb.Append(QueryHelper.GetPostDelimeter(this.type)); sb.Append(" NOT IN ("); IEnumerator enumerator = values.GetEnumerator(); *************** *** 251,254 **** --- 280,288 ---- public virtual void AddNotIn(string columnName, ISqlQuery subSqlQuery) { + sb.Append(" "); + sb.Append(QueryHelper.GetPreDelimeter(this.type)); + sb.Append(columnName); + sb.Append(QueryHelper.GetPostDelimeter(this.type)); + sb.Append(" NOT IN (" + subSqlQuery.GetText() + ") "); this.initialized = true; *************** *** 273,277 **** sb.Append(columnName); sb.Append(QueryHelper.GetPostDelimeter(this.type)); ! sb.Append(" NOT IS NULL "); this.initialized = true; } --- 307,311 ---- sb.Append(columnName); sb.Append(QueryHelper.GetPostDelimeter(this.type)); ! sb.Append(" IS NOT NULL "); this.initialized = true; } *************** *** 287,291 **** { this.AddOr(); ! sb.Append("(" + c.GetText().Replace("WHERE","") + ")"); this.initialized = true; } --- 321,325 ---- { this.AddOr(); ! sb.Append("(" + c.GetText().Replace("WHERE","").Trim() + ") "); this.initialized = true; } *************** *** 294,298 **** --- 328,334 ---- public virtual void AddSql(string sql) { + sb.Append(" "); sb.Append(sql); + sb.Append(" "); this.initialized = true; } *************** *** 321,324 **** --- 357,365 ---- } + public string Statement + { + get{return this.GetText();} + } + } Index: SelectQuery.cs =================================================================== RCS file: /cvsroot/adapdev/Adapdev/src/Adapdev.Data/Sql/SelectQuery.cs,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** SelectQuery.cs 3 Mar 2006 05:22:54 -0000 1.13 --- SelectQuery.cs 15 Mar 2006 04:34:20 -0000 1.14 *************** *** 18,21 **** --- 18,22 ---- protected int maxRecords = 0; protected string _join = ""; + private bool orderSet = false; internal SelectQuery(DbType type, DbProviderType provider) *************** *** 103,106 **** --- 104,113 ---- } + public void AddOrderBy(string columnName, OrderBy orderBy) + { + order.Enqueue(QueryHelper.GetPreDelimeter(this.type) + columnName + QueryHelper.GetPostDelimeter(this.type) + " " + this.TranslateOrderBy(orderBy)); + this.orderSet = true; + } + public void AddOrderBy(string tableName, string columnName) { *************** *** 108,111 **** --- 115,124 ---- } + public void AddOrderBy(string tableName, string columnName, OrderBy orderBy) + { + order.Enqueue(QueryHelper.GetPreDelimeter(this.type) + tableName + QueryHelper.GetPostDelimeter(this.type) + "." + QueryHelper.GetPreDelimeter(this.type) + columnName + QueryHelper.GetPostDelimeter(this.type) + " " + this.TranslateOrderBy(orderBy)); + this.orderSet = true; + } + public void AddOrderBy(string tableName, params string[] columns) { *************** *** 116,120 **** } ! public void AddOrderBy(params string[] columns) { foreach (string s in columns) --- 129,133 ---- } ! public void AddOrderByColumns(params string[] columns) { foreach (string s in columns) *************** *** 141,145 **** this._join = String.Format(" {0} {1} ON {2}.{3} = {4}.{5} ", this.GetJoinType(type), QueryHelper.GetPreDelimeter(this.type) + secondTable + QueryHelper.GetPostDelimeter(this.type), ! QueryHelper.GetPreDelimeter(this.type) + this._table + QueryHelper.GetPostDelimeter(this.type), QueryHelper.GetPreDelimeter(this.type) + firstTableColumn + QueryHelper.GetPostDelimeter(this.type), QueryHelper.GetPreDelimeter(this.type) + secondTable + QueryHelper.GetPostDelimeter(this.type), --- 154,158 ---- this._join = String.Format(" {0} {1} ON {2}.{3} = {4}.{5} ", this.GetJoinType(type), QueryHelper.GetPreDelimeter(this.type) + secondTable + QueryHelper.GetPostDelimeter(this.type), ! this._table, QueryHelper.GetPreDelimeter(this.type) + firstTableColumn + QueryHelper.GetPostDelimeter(this.type), QueryHelper.GetPreDelimeter(this.type) + secondTable + QueryHelper.GetPostDelimeter(this.type), *************** *** 173,177 **** public virtual string GetText() { ! return "SELECT " + this.GetLimit() + this.GetColumns() + " FROM " + this._table + this._join + this.GetCriteria() + this.GetOrderBy() + this.GetGroupBy(); } --- 186,190 ---- public virtual string GetText() { ! return "SELECT " + this.GetLimit() + this.GetColumns() + " FROM " + this._table + this._join + this.GetCriteria() + this.GetGroupBy() + this.GetOrderBy(); } *************** *** 271,274 **** --- 284,289 ---- case JoinType.RIGHT: return "RIGHT OUTER JOIN"; + case JoinType.OUTER: + return "FULL OUTER JOIN"; default: throw new Exception("JoinType " + type + " not supported."); *************** *** 278,282 **** protected virtual string TranslateOrderBy() { ! if (this.ob == OrderBy.DESCENDING) { return " DESC "; --- 293,305 ---- protected virtual string TranslateOrderBy() { ! if(!this.orderSet) ! return this.TranslateOrderBy(this.ob); ! else ! return String.Empty; ! } ! ! protected virtual string TranslateOrderBy(OrderBy orderBy) ! { ! if (orderBy == OrderBy.DESCENDING) { return " DESC "; Index: ICriteria.cs =================================================================== RCS file: /cvsroot/adapdev/Adapdev/src/Adapdev.Data/Sql/ICriteria.cs,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** ICriteria.cs 21 Jan 2006 19:42:48 -0000 1.8 --- ICriteria.cs 15 Mar 2006 04:34:20 -0000 1.9 *************** *** 10,14 **** void AddAnd(); void AddAndCriteria(ICriteria pc); - void AddCriteriaSeparator(CriteriaType ct); void AddBetween(string columnName, object value1, object value2); void AddEqualTo(string columnName, object columnValue); --- 10,13 ---- *************** *** 24,27 **** --- 23,27 ---- void AddLessThan(string columnName, object columnValue); void AddLike(string columnName, object columnValue); + void AddLike(string tableName, string columnName, object columnValue); void AddNotBetween(string columnName, object value1, object value2); void AddNotEqualTo(string columnName, object columnValue); *************** *** 34,37 **** --- 34,38 ---- void AddOrCriteria(ICriteria pc); void AddSql(string sql); + string Statement{get;} string GetText(); bool Initialized{get;} Index: ISelectQuery.cs =================================================================== RCS file: /cvsroot/adapdev/Adapdev/src/Adapdev.Data/Sql/ISelectQuery.cs,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ISelectQuery.cs 21 Jan 2006 19:42:48 -0000 1.10 --- ISelectQuery.cs 15 Mar 2006 04:34:20 -0000 1.11 *************** *** 50,53 **** --- 50,59 ---- void AddOrderBy(string columnName); /// <summary> + /// Adds a ORDER BY [columnName] statement in the datastore specific format + /// </summary> + /// <param name="columnName">Name of the column.</param> + /// <param name="orderBy">The order by.</param> + void AddOrderBy(string columnName, OrderBy orderBy); + /// <summary> /// Adds a ORDER BY [table].[column] statement in the datastore specific format /// </summary> *************** *** 56,63 **** void AddOrderBy(string tableName, string columnName); /// <summary> /// Adds a ORDER BY [column1], [column2]... statement in the datastore specific format /// </summary> /// <param name="columns"></param> ! void AddOrderBy(params string[] columns); /// <summary> /// Adds a GROUP BY [columnName] statement in the datastore specific format --- 62,76 ---- void AddOrderBy(string tableName, string columnName); /// <summary> + /// Adds a ORDER BY [table].[column] statement in the datastore specific format + /// </summary> + /// <param name="tableName"></param> + /// <param name="columnName"></param> + /// <param name="orderBy">The order by.</param> + void AddOrderBy(string tableName, string columnName, OrderBy orderBy); + /// <summary> /// Adds a ORDER BY [column1], [column2]... statement in the datastore specific format /// </summary> /// <param name="columns"></param> ! void AddOrderByColumns(params string[] columns); /// <summary> /// Adds a GROUP BY [columnName] statement in the datastore specific format *************** *** 98,102 **** LEFT, RIGHT, ! INNER } } \ No newline at end of file --- 111,116 ---- LEFT, RIGHT, ! INNER, ! OUTER } } \ No newline at end of file |