/// <summary> /// Create a new condition phrase. /// </summary> /// <param name="expr">SQL Expression.</param> /// <param name="conditionOperator">Condition operator.</param> /// <param name="value">Value.</param> /// <param name="paramName">Parameter name.</param> public APSqlConditionPhrase(APSqlOperateExpr expr, APSqlConditionOperator conditionOperator, object value, string paramName) { if (Object.Equals(expr, null)) { throw new ArgumentNullException("columnDef"); } if (conditionOperator == APSqlConditionOperator.Exists || conditionOperator == APSqlConditionOperator.NotExists) { throw new ArgumentException(APResource.APDB_OperatorExists, "conditionOperator"); } _expr = expr; _paramName = paramName; if (String.IsNullOrEmpty(paramName)) { _paramName = expr.ParamName; } if (value is String) { value = APSqlExpr.TryFitStringToRawExpr((string)value); } _value = value; _conditionOperator = conditionOperator; }
/// <summary> /// Create a new condition phrase. /// </summary> /// <param name="relationDef">Relation definition.</param> public APSqlConditionPhrase(APRelationDef relationDef) { if (relationDef == null) throw new ArgumentNullException("relationDef"); _expr = new APSqlColumnExpr(relationDef.Master); _conditionOperator = APSqlConditionOperator.Equals; _value = new APSqlColumnExpr(relationDef.Slave); }
/// <summary> /// Create a new condition phrase. /// </summary> /// <param name="relationDef">Relation definition.</param> public APSqlConditionPhrase(APRelationDef relationDef) { if (relationDef == null) { throw new ArgumentNullException("relationDef"); } _expr = new APSqlColumnExpr(relationDef.Master); _conditionOperator = APSqlConditionOperator.Equals; _value = new APSqlColumnExpr(relationDef.Slave); }
/// <summary> /// Create a new condition phrase where sub query when use '[NOT] EXISTS' /// </summary> /// <param name="subQuery">Sub Query.</param> /// <param name="conditionOperator">'EXISTS' or 'NOT EXISTS'</param> public APSqlConditionPhrase(APSqlSelectCommand subQuery, APSqlConditionOperator conditionOperator) { if (subQuery == null) { throw new ArgumentNullException("subQuery"); } if (conditionOperator != APSqlConditionOperator.Exists && conditionOperator != APSqlConditionOperator.NotExists) { throw new ArgumentException(APResource.APDB_OperatorExists, "conditionOperator"); } _expr = null; _conditionOperator = conditionOperator; _value = subQuery; }
/// <summary> /// Get 'WHERE' phrase. /// </summary> /// <param name="op">Condition operator.</param> /// <param name="value">Value.</param> /// <returns>An APSqlWherePhrase.</returns> protected virtual APSqlWherePhrase GetQueryWherePhrase(APSqlConditionOperator op, string value) { object v = null; if (value == "NULL") { v = DBNull.Value; } else { v = TryGetFilterValue(value); } return(new APSqlConditionPhrase(_selectExpr, op, v)); }
/// <summary> /// Create a new condition phrase. /// </summary> /// <param name="expr">SQL Expression.</param> /// <param name="conditionOperator">Condition operator.</param> /// <param name="value">Value.</param> /// <param name="paramName">Parameter name.</param> public APSqlConditionPhrase(APSqlOperateExpr expr, APSqlConditionOperator conditionOperator, object value, string paramName) { if (Object.Equals(expr, null)) throw new ArgumentNullException("columnDef"); if (conditionOperator == APSqlConditionOperator.Exists || conditionOperator == APSqlConditionOperator.NotExists) throw new ArgumentException(APResource.APDB_OperatorExists, "conditionOperator"); _expr = expr; _paramName = paramName; if (String.IsNullOrEmpty(paramName)) { _paramName = expr.ParamName; } if (value is String) value = APSqlExpr.TryFitStringToRawExpr((string)value); _value = value; _conditionOperator = conditionOperator; }
/// <summary> /// Get 'WHERE' phrase. /// </summary> /// <param name="op">Condition operator.</param> /// <param name="joinType">Condition join type.</param> /// <param name="values">Values.</param> /// <returns>An APSqlWherePhrase.</returns> protected virtual APSqlWherePhrase GetQueryWherePhrase(APSqlConditionOperator op, APSqlConditionJoinType joinType, string[] values) { List <APSqlWherePhrase> list = new List <APSqlWherePhrase>(); foreach (string value in values) { list.Add(GetQueryWherePhrase(op, value)); } if (list.Count == 1) { return(list[0]); } if (joinType == APSqlConditionJoinType.AND) { return(new APSqlConditionAndPhrase(list)); } else { return(new APSqlConditionOrPhrase(list)); } }
/// <summary> /// Create a new condition phrase where sub query when use 'ANY | SOME | ALL'. /// </summary> /// <param name="expr">SQL Expression.</param> /// <param name="conditionOperator">Condition operator.</param> /// <param name="subQuery">Sub Query.</param> /// <param name="subQueryScalarRestrict">Sub query scalar restrict.</param> public APSqlConditionPhrase(APSqlOperateExpr expr, APSqlConditionOperator conditionOperator, APSqlSelectCommand subQuery, APSqlSubQueryScalarRestrict subQueryScalarRestrict) : this(expr, conditionOperator, subQuery, null) { _subQueryScalarRestrict = subQueryScalarRestrict; }
/// <summary> /// Create a new condition phrase. /// </summary> /// <param name="expr">SQL Expression.</param> /// <param name="conditionOperator">Condition operator.</param> /// <param name="value">Value.</param> public APSqlConditionPhrase(APSqlOperateExpr expr, APSqlConditionOperator conditionOperator, object value) : this(expr, conditionOperator, value, null) { }
/// <summary> /// Create a new condition phrase where sub query when use '[NOT] EXISTS' /// </summary> /// <param name="subQuery">Sub Query.</param> /// <param name="conditionOperator">'EXISTS' or 'NOT EXISTS'</param> public APSqlConditionPhrase(APSqlSelectCommand subQuery, APSqlConditionOperator conditionOperator) { if (subQuery == null) throw new ArgumentNullException("subQuery"); if (conditionOperator != APSqlConditionOperator.Exists && conditionOperator != APSqlConditionOperator.NotExists) throw new ArgumentException(APResource.APDB_OperatorExists, "conditionOperator"); _expr = null; _conditionOperator = conditionOperator; _value = subQuery; }
/// <summary> /// Get 'WHERE' phrase. /// </summary> /// <param name="op">Condition operator.</param> /// <param name="joinType">Condition join type.</param> /// <param name="values">Values.</param> /// <returns>An APSqlWherePhrase.</returns> protected virtual APSqlWherePhrase GetQueryWherePhrase(APSqlConditionOperator op, APSqlConditionJoinType joinType, string[] values) { List<APSqlWherePhrase> list = new List<APSqlWherePhrase>(); foreach (string value in values) list.Add(GetQueryWherePhrase(op, value)); if (list.Count == 1) return list[0]; if (joinType == APSqlConditionJoinType.AND) return new APSqlConditionAndPhrase(list); else return new APSqlConditionOrPhrase(list); }
/// <summary> /// Get 'WHERE' phrase. /// </summary> /// <param name="op">Condition operator.</param> /// <param name="value">Value.</param> /// <returns>An APSqlWherePhrase.</returns> protected virtual APSqlWherePhrase GetQueryWherePhrase(APSqlConditionOperator op, string value) { object v = null; if (value == "NULL") { v = DBNull.Value; } else { v = TryGetFilterValue(value); } return new APSqlConditionPhrase(_selectExpr, op, v); }