Esempio n. 1
0
        /// <summary>
        /// 总行数
        /// </summary>
        /// <param name="functionHandle">函数</param>
        /// <param name="param">字段</param>
        /// <returns></returns>
        public static BQLAggregateFunction Count(BQLParamHandle param)
        {
            BQLAggregateFunction item = new BQLAggregateFunction(DBAggregateFunction.DoCount, param);

            item.ValueDbType = DbType.Int32;
            return(item);
        }
Esempio n. 2
0
        /// <summary>
        /// 直接查询数据库视图
        /// </summary>
        /// <param name="table">表</param>
        /// <param name="lstScope">条件</param>
        /// <param name="vParams">字段列表</param>
        /// <param name="lstSort">排序类型</param>
        /// <param name="objPage">分页对象</param>
        /// <returns></returns>
        public DataSet SelectTable(BQLOtherTableHandle table, ScopeList lstScope)
        {
            List <BQLParamHandle> lstParams = GetParam(table, lstScope);

            List <BQLParamHandle> lstOrders = new List <BQLParamHandle>();
            BQLParamHandle        order     = null;

            foreach (Sort objSort in lstScope.OrderBy)
            {
                order = table[objSort.PropertyName];
                if (objSort.SortType == SortType.ASC)
                {
                    order = order.ASC;
                }
                else
                {
                    order = order.DESC;
                }
                lstOrders.Add(order);
            }

            BQLCondition where = BQLCondition.TrueValue;
            where = FillCondition(where, table, lstScope, null);

            BQLQuery bql = BQL.Select(lstParams.ToArray()).From(table).Where(where).OrderBy(lstOrders.ToArray());

            if (lstScope.HasPage)
            {
                using (BatchAction ba = _oper.StarBatchAction())
                {
                    return(QueryDataSet(bql, null, lstScope.PageContent, lstScope.UseCache));
                }
            }
            return(QueryDataSet(bql, null, lstScope.UseCache));
        }
Esempio n. 3
0
 /// <summary>
 /// 条件函数
 /// </summary>
 /// <param name="sourceHandle">发送源(字段)</param>
 /// <param name="query">查询</param>
 /// <param name="handle">关联处理函数</param>
 public BQLConditionItem(BQLParamHandle sourceHandle, BQLQuery query, DelConditionHandle handle)
 {
     this._sourceHandle = sourceHandle;
     this._handle       = handle;
     this._query        = query;
     this._valueDbType  = DbType.Boolean;
 }
Esempio n. 4
0
        ///// <summary>
        ///// 查询范围
        ///// </summary>
        ///// <param name="star">开始条数</param>
        ///// <param name="totalRecord">显示条数</param>
        ///// <returns></returns>
        //public KeyWordLimitItem Limit(uint star, uint totalRecord)
        //{
        //    KeyWordLimitItem item = new KeyWordLimitItem(star, totalRecord, this);
        //    return item;
        //}
        internal override void Tran(KeyWordInfomation info)
        {
            info.IsWhere = true;
            string ret = "";
            SelectCondition con = info.Condition as SelectCondition;

            for (int i = 0; i < paramhandles.Count; i++)
            {
                BQLParamHandle prm = paramhandles[i];
                string prmStr=prm.DisplayValue(info);
                ret +=prmStr ;
                if (i < paramhandles.Count - 1)
                {
                    ret += ",";
                }
                if (con != null)
                {
                    info.Condition.PrimaryKey.Add(prmStr);

                }
            }
            info.Condition.GroupBy.Append(ret);
            info.IsWhere = false;
            //return " group by " + ret;
        
        }
Esempio n. 5
0
        /// <summary>
        /// 平均值
        /// </summary>
        /// <param name="functionHandle">函数</param>
        /// <param name="param">字段</param>
        /// <returns></returns>
        public static BQLAggregateFunction Avg(BQLParamHandle param)
        {
            BQLAggregateFunction item = new BQLAggregateFunction(DBAggregateFunction.DoAvg, param);

            item.ValueDbType = DbType.Double;
            return(item);
        }
Esempio n. 6
0
 internal override void LoadInfo(KeyWordInfomation info)
 {
     for (int i = 0; i < parameters.Length; i++)
     {
         BQLParamHandle prmHandle = parameters[i];
         BQLValueItem.DoFillInfo(prmHandle, info);
     }
 }
Esempio n. 7
0
        //IAggregateFunctions agf = DbAdapterLoader.Aggregate;
        /// <summary>
        /// 总计
        /// </summary>
        /// <param name="functionHandle">函数</param>
        /// <param name="param">字段</param>
        /// <returns></returns>
        public static BQLAggregateFunction Sum(BQLParamHandle param)
        {
            BQLAggregateFunction item = new BQLAggregateFunction(DBAggregateFunction.DoSum, param);

            item.ValueDbType = DbType.Double;
            //item.ValueDataType = DefaultType.DoubleType;
            return(item);
        }
Esempio n. 8
0
        /// <summary>
        /// 获取别名字段
        /// </summary>
        /// <param name="propertyName"></param>
        /// <returns></returns>
        public BQLParamHandle GetAliasParam(string propertyName)
        {
            BQLAliasParamHandle prm = null;
            BQLParamHandle      ret = null;

            if (_dicParams.TryGetValue(propertyName, out prm))
            {
                ret             = BQL.ToParam(prm.AliasName);
                ret.ValueDbType = prm.ValueDbType;
            }
            return(ret);
        }
Esempio n. 9
0
        /// <summary>
        /// 获取属性名
        /// </summary>
        /// <param name="parameter"></param>
        /// <returns></returns>
        private string GetKey(BQLParamHandle parameter)
        {
            BQLEntityParamHandle ehandle = parameter as BQLEntityParamHandle;

            if (!CommonMethods.IsNull(ehandle))
            {
                return(ehandle.PInfo.PropertyName);
            }
            BQLOtherParamHandle ohandle = parameter as BQLOtherParamHandle;

            if (!CommonMethods.IsNull(ohandle))
            {
                return(ohandle.ParamName);
            }
            return(parameter.DisplayValue(BQLValueItem.GetKeyInfo()));
        }
Esempio n. 10
0
        /// <summary>
        /// 获取排序列表
        /// </summary>
        /// <param name="lstScort"></param>
        /// <param name="table"></param>
        /// <param name="entityType"></param>
        /// <returns></returns>
        internal static BQLParamHandle[] GetSort(SortList lstScort, BQLTableHandle table, EntityInfoHandle entityInfo)
        {
            List <BQLParamHandle> lstHandles = new List <BQLParamHandle>();

            if (lstScort == null)
            {
                lstHandles.ToArray();
            }


            for (int i = 0; i < lstScort.Count; i++)
            {
                Sort objSort = lstScort[i];

                BQLParamHandle handle = null;
                if (!CommonMethods.IsNull(objSort.OrderHandle))
                {
                    handle = objSort.OrderHandle;
                }
                else if (entityInfo != null)
                {
                    //EntityPropertyInfo info = entityInfo.PropertyInfo[objSort.PropertyName];
                    if (objSort.SortType == SortType.ASC)
                    {
                        handle = table[objSort.PropertyName].ASC;
                    }
                    else
                    {
                        handle = table[objSort.PropertyName].DESC;
                    }
                }
                else
                {
                    if (objSort.SortType == SortType.ASC)
                    {
                        handle = table[objSort.PropertyName].ASC;
                    }
                    else
                    {
                        handle = table[objSort.PropertyName].DESC;
                    }
                }
                lstHandles.Add(handle);
            }
            return(lstHandles.ToArray());
        }
Esempio n. 11
0
        internal override void Tran(KeyWordInfomation info)
        {
            info.IsWhere = true;
            StringBuilder condition = new StringBuilder();

            for (int i = 0; i < parameters.Length; i++)
            {
                BQLParamHandle prmHandle = parameters[i];
                condition.Append(prmHandle.DisplayValue(info));
                if (i < parameters.Length - 1)
                {
                    condition.Append(',');
                }
            }
            info.Condition.Orders.Append(condition.ToString());
            //return " order by " + condition.ToString();
            info.IsWhere = false;
        }
Esempio n. 12
0
        /// <summary>
        /// 添加一个Update设置
        /// </summary>
        /// <param name="parameter">字段</param>
        /// <param name="valueItem">值</param>
        public void Add(BQLParamHandle parameter, BQLValueItem valueItem)
        {
            string key = GetKey(parameter);

            this[key] = valueItem;
        }
Esempio n. 13
0
 /// <summary>
 /// 添加一个set项
 /// </summary>
 /// <param name="parameter">字段</param>
 /// <param name="valueItem">值</param>
 /// <returns></returns>
 public KeyWordUpdateSetItem _(BQLParamHandle parameter, BQLValueItem valueItem)
 {
     lstItems.Add(parameter, valueItem);
     return(this);
 }
Esempio n. 14
0
 /// <summary>
 /// Set关键字项
 /// </summary>
 /// <param name="parameter">要更新的字段</param>
 /// <param name="valueItem">值</param>
 /// <param name="previous">上一个</param>
 public KeyWordUpdateSetItem(BQLParamHandle parameter, BQLValueItem valueItem, BQLQuery previous)
     : base(previous)
 {
     lstItems = new UpdateSetParamItemList();
     lstItems.Add(parameter, valueItem);
 }
Esempio n. 15
0
 /// <summary>
 /// Set关键字更新的项
 /// </summary>
 /// <param name="tables">表集合</param>
 /// <param name="previous">上一个关键字</param>
 internal UpdateSetParamItem(BQLParamHandle parameter, BQLValueItem valueItem)
 {
     this.parameter = parameter;
     this.valueItem = valueItem;
 }
Esempio n. 16
0
        /// <summary>
        /// 添加一个set项
        /// </summary>
        /// <param name="parameter">字段</param>
        /// <param name="valueItem">值</param>
        /// <returns></returns>
        public KeyWordUpdateSetItem Set(BQLParamHandle parameter, BQLValueItem valueItem)
        {
            KeyWordUpdateSetItem item = new KeyWordUpdateSetItem(parameter, valueItem, this);

            return(item);
        }
Esempio n. 17
0
 /// <summary>
 /// 添加一个更新项
 /// </summary>
 /// <param name="parameter">更新项的字段</param>
 /// <param name="valueItem">更新值</param>
 public void Add(BQLParamHandle parameter, BQLValueItem valueItem)
 {
     this.Add(new UpdateSetParamItem(parameter, valueItem));
 }
Esempio n. 18
0
        /// <summary>
        /// 产生倒叙排序的项
        /// </summary>
        /// <param name="arg">字段</param>
        /// <returns></returns>
        public static BQLOrderByHandle DESC(BQLParamHandle arg)
        {
            BQLOrderByHandle orderHandle = new BQLOrderByHandle(arg, SortType.DESC);

            return(orderHandle);
        }
Esempio n. 19
0
        /// <summary>
        /// 聚合函数
        /// </summary>
        /// <param name="functionName">函数名</param>
        /// <param name="param"></param>
        public BQLAggregateFunction(DelAggregateFunctionHandle functionHandle, BQLParamHandle param)

        {
            this.functionHandle = functionHandle;
            this.param          = param;
        }
Esempio n. 20
0
        /// <summary>
        /// 最大
        /// </summary>
        /// <param name="functionHandle">函数</param>
        /// <param name="param">字段</param>
        /// <returns></returns>
        public static BQLAggregateFunction Max(BQLParamHandle param)
        {
            BQLAggregateFunction item = new BQLAggregateFunction(DBAggregateFunction.DoMax, param);

            return(item);
        }
Esempio n. 21
0
        /// <summary>
        /// 别名字段
        /// </summary>
        /// <param name="param">字段</param>
        /// <param name="asName">别名</param>
        /// <returns></returns>
        public static BQLAliasParamHandle ParamAs(BQLParamHandle param, string asName)
        {
            BQLAliasParamHandle item = new BQLAliasParamHandle(param, asName);

            return(item);
        }