internal override string CreateSqlString(CommandFactory factory, bool isFullName, CreateSqlState state) { var sql = state.GetDataSql(this, isFullName); if (sql != null) { return(sql); } var objectList = new List <object>(); foreach (var item in _argsObjects) { object obj1; var info1 = item as DataFieldInfo; if (!Equals(info1, null)) { obj1 = info1.CreateSqlString(factory, isFullName, state); } else { obj1 = LambdaExpressionExtend.ConvertLambdaObject(item); obj1 = state.AddDataParameter(factory, obj1); } objectList.Add(obj1); } switch (_function) { case MathFunction.Abs: sql = factory.CreateAbsSql(objectList[0]); break; case MathFunction.Sign: sql = factory.CreateSignSql(objectList[0]); break; case MathFunction.Sin: sql = factory.CreateSinSql(objectList[0]); break; case MathFunction.Cos: sql = factory.CreateCosSql(objectList[0]); break; case MathFunction.Tan: sql = factory.CreateTanSql(objectList[0]); break; case MathFunction.Atan: sql = factory.CreateAtanSql(objectList[0]); break; case MathFunction.Asin: sql = factory.CreateAsinSql(objectList[0]); break; case MathFunction.Acos: sql = factory.CreateAcosSql(objectList[0]); break; case MathFunction.Atan2: sql = factory.CreateAtan2Sql(objectList[0], objectList[1]); break; case MathFunction.Ceiling: sql = factory.CreateCeilingSql(objectList[0]); break; case MathFunction.Floor: sql = factory.CreateFloorSql(objectList[0]); break; case MathFunction.Round: sql = factory.CreateRoundSql(objectList[0], objectList.Count == 2 ? objectList[1] : 0); break; case MathFunction.Truncate: sql = factory.CreateTruncateSql(objectList[0]); break; case MathFunction.Log: sql = objectList.Count == 2 ? factory.CreateLogSql(objectList[0], objectList[1]) : factory.CreateLogSql(objectList[0]); break; case MathFunction.Log10: sql = factory.CreateLog10Sql(objectList[0]); break; case MathFunction.Exp: sql = factory.CreateExpSql(objectList[0]); break; case MathFunction.Pow: sql = factory.CreatePowSql(objectList[0], objectList[1]); break; case MathFunction.Sqrt: sql = factory.CreateSqrtSql(objectList[0]); break; case MathFunction.Max: sql = factory.CreateMaxSql(objectList[0], objectList[1]); break; case MathFunction.Min: sql = factory.CreateMinSql(objectList[0], objectList[1]); break; } state.SetDataSql(this, isFullName, sql); return(sql); }
internal override string CreateSqlString(CommandFactory factory, bool isFullName, CreateSqlState state) { string fieldSql = _fieldInfo.CreateSqlString(factory, isFullName, state); return(factory.CreateOrderBySql(fieldSql, _orderType)); }
string GetNextParameterName(CommandFactory factory) { seed++; return(factory.CreateParamName("P" + seed)); }
internal override string CreateSqlString(CommandFactory factory, bool isFullName, CreateSqlState state) { string sql = null; DataFieldInfo leftInfo = _left as DataFieldInfo; DataFieldInfo rightInfo = _right as DataFieldInfo; if (!Object.Equals(leftInfo, null) && !Object.Equals(rightInfo, null)) { string leftSql = leftInfo.CreateSqlString(factory, isFullName, state); string rightSql = rightInfo.CreateSqlString(factory, isFullName, state); sql = factory.CreateSingleParamSql(leftSql, _predicate, rightSql); } else if (!Object.Equals(leftInfo, null)) { string leftSql = leftInfo.CreateSqlString(factory, isFullName, state); object right = LambdaExpressionExtend.ConvertLambdaObject(_right); if (Object.Equals(right, null)) { bool predicate; if (_predicate == QueryPredicate.Eq) { predicate = true; } else if (_predicate == QueryPredicate.NotEq) { predicate = false; } else { throw new LightDataException(string.Format(SR.UnsupportPredicate, _predicate, "null")); } sql = factory.CreateNullQuerySql(leftSql, predicate); } else if (right is bool) { bool predicate; if (_predicate == QueryPredicate.Eq) { predicate = true; } else if (_predicate == QueryPredicate.NotEq) { predicate = false; } else { throw new LightDataException(string.Format(SR.UnsupportPredicate, _predicate, "bool")); } bool ret = (bool)right; sql = factory.CreateBooleanQuerySql(leftSql, ret, predicate, false); } else { string name = state.AddDataParameter(factory, leftInfo.ToParameter(right)); sql = factory.CreateSingleParamSql(leftSql, _predicate, name); } } else if (!Object.Equals(rightInfo, null)) { string rightSql = rightInfo.CreateSqlString(factory, isFullName, state); object left = LambdaExpressionExtend.ConvertLambdaObject(_left); if (Object.Equals(left, null)) { bool predicate; if (_predicate == QueryPredicate.Eq) { predicate = true; } else if (_predicate == QueryPredicate.NotEq) { predicate = false; } else { throw new LightDataException(string.Format(SR.UnsupportPredicate, _predicate, "null")); } sql = factory.CreateNullQuerySql(rightSql, predicate); } else if (left is bool) { bool predicate; if (_predicate == QueryPredicate.Eq) { predicate = true; } else if (_predicate == QueryPredicate.NotEq) { predicate = false; } else { throw new LightDataException(string.Format(SR.UnsupportPredicate, _predicate, "bool")); } bool ret = (bool)left; sql = factory.CreateBooleanQuerySql(rightSql, ret, predicate, true); } else { string name = state.AddDataParameter(factory, rightInfo.ToParameter(left)); sql = factory.CreateSingleParamSql(name, _predicate, rightSql); } } else { throw new LightDataException(SR.DataFieldContentError); } return(sql); }
/// <summary> /// Add the data parameter. /// </summary> /// <returns>The data parameter.</returns> /// <param name="factory">Factory.</param> /// <param name="paramValue">Parameter value.</param> /// <param name="direction">Direction.</param> public string AddDataParameter(CommandFactory factory, object paramValue, ParameterDirection direction) { return(AddDataParameter(factory, paramValue, null, direction)); }
/// <summary> /// Add the data parameter. /// </summary> /// <returns>The data parameter.</returns> /// <param name="factory">Factory.</param> /// <param name="paramValue">Parameter value.</param> /// <param name="dbType">Db type.</param> public string AddDataParameter(CommandFactory factory, object paramValue, string dbType) { return(AddDataParameter(factory, paramValue, dbType, ParameterDirection.Input)); }
internal override string CreateSqlString(CommandFactory factory, bool isFullName, CreateSqlState state) { return(_fieldInfo.CreateSqlString(factory, isFullName, state)); }
internal abstract string CreateSqlString(CommandFactory factory, out DataParameter[] dataParameters);
internal override string CreateSqlString(CommandFactory factory, bool isFullName, CreateSqlState state) { throw new NotSupportedException(); }
internal override string CreateSqlString(CommandFactory factory, bool isFullName, CreateSqlState state) { string sql = state.GetDataSql(this, isFullName); if (sql != null) { return(sql); } object left; object right; DataFieldInfo leftInfo = _left as DataFieldInfo; DataFieldInfo rightInfo = _right as DataFieldInfo; if (!Object.Equals(leftInfo, null) && !Object.Equals(rightInfo, null)) { left = leftInfo.CreateSqlString(factory, isFullName, state); right = rightInfo.CreateSqlString(factory, isFullName, state); } else if (!Object.Equals(leftInfo, null)) { left = leftInfo.CreateSqlString(factory, isFullName, state); object rightObject = LambdaExpressionExtend.ConvertLambdaObject(_right); right = state.AddDataParameter(factory, rightObject); } else if (!Object.Equals(rightInfo, null)) { right = rightInfo.CreateSqlString(factory, isFullName, state); object leftObject = LambdaExpressionExtend.ConvertLambdaObject(_left); left = state.AddDataParameter(factory, leftObject); } else { throw new LightDataException(SR.DataFieldContentError); } switch (_opera) { case MathOperator.Puls: sql = factory.CreatePlusSql(left, right); break; case MathOperator.Minus: sql = factory.CreateMinusSql(left, right); break; case MathOperator.Multiply: sql = factory.CreateMultiplySql(left, right); break; case MathOperator.Divided: sql = factory.CreateDividedSql(left, right); break; case MathOperator.Mod: sql = factory.CreateModSql(left, right); break; case MathOperator.Power: sql = factory.CreatePowerSql(left, right); break; } state.SetDataSql(this, isFullName, sql); return(sql); }
internal override string CreateSqlString(CommandFactory factory, bool isFullName, CreateSqlState state) { var sql = state.GetDataSql(this, isFullName); if (sql != null) { return(sql); } var objectList = new List <object>(); object obj; var info = _callObject as DataFieldInfo; if (!Equals(info, null)) { obj = info.CreateSqlString(factory, isFullName, state); } else { obj = LambdaExpressionExtend.ConvertLambdaObject(_callObject); obj = state.AddDataParameter(factory, obj); } if (_argsObjects != null) { foreach (var item in _argsObjects) { object obj1; var info1 = item as DataFieldInfo; if (!Equals(info1, null)) { obj1 = info1.CreateSqlString(factory, isFullName, state); } else { obj1 = LambdaExpressionExtend.ConvertLambdaObject(item); obj1 = state.AddDataParameter(factory, obj1); } objectList.Add(obj1); } } switch (_function) { case StringFunction.Substring: sql = factory.CreateSubStringSql(obj, objectList[0], objectList.Count == 2 ? objectList[1] : null); break; case StringFunction.IndexOf: sql = factory.CreateIndexOfSql(obj, objectList[0], objectList.Count == 2 ? objectList[1] : null); break; case StringFunction.Replace: sql = factory.CreateReplaceSql(obj, objectList[0], objectList[1]); break; case StringFunction.ToLower: sql = factory.CreateToLowerSql(obj); break; case StringFunction.ToUpper: sql = factory.CreateToUpperSql(obj); break; case StringFunction.Trim: sql = factory.CreateTrimSql(obj); break; } state.SetDataSql(this, isFullName, sql); return(sql); }
internal override string CreateSqlString(CommandFactory factory, bool isFullName, CreateSqlState state) { return(factory.CreateRandomOrderBySql(TableMapping, _aliasTableName, isFullName)); }
public string CreateSelectString(CommandFactory factory, bool isFullName, CreateSqlState state) { return(factory.CreateSelectAllSql()); }