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));
        }
Esempio n. 3
0
 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);
        }
Esempio n. 5
0
 /// <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));
 }
Esempio n. 6
0
 /// <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));
 }
Esempio n. 7
0
 internal override string CreateSqlString(CommandFactory factory, bool isFullName, CreateSqlState state)
 {
     return(_fieldInfo.CreateSqlString(factory, isFullName, state));
 }
Esempio n. 8
0
 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));
 }
Esempio n. 13
0
 public string CreateSelectString(CommandFactory factory, bool isFullName, CreateSqlState state)
 {
     return(factory.CreateSelectAllSql());
 }