Exemplo n.º 1
0
        /// <summary>
        /// from关键字
        /// </summary>
        /// <param name="handle"></param>
        /// <returns></returns>
        internal override void Tran(KeyWordInfomation info)
        {
            StringBuilder ret = new StringBuilder();


            if (info.AliasManager == null)
            {
                for (int i = 0; i < _tables.Length; i++)
                {
                    BQLTableHandle table     = _tables[i];
                    string         tableName = table.DisplayValue(info);
                    ret.Append(tableName);
                    if (i < _tables.Length - 1)
                    {
                        ret.Append(",");
                    }
                }
                info.Condition.Tables.Append(ret.ToString());
            }
            else
            {
                for (int i = 0; i < _tables.Length; i++)
                {
                    BQLTableHandle table = _tables[i];

                    BQLAliasHandle ahandle = info.AliasManager.GetPrimaryAliasHandle(table);
                    if (!Buffalo.Kernel.CommonMethods.IsNull(ahandle))
                    {
                        _tables[i] = ahandle;
                    }
                }


                KeyWordFromItem       from    = info.AliasManager.ToInnerTable(this, info);
                TableAliasNameManager manager = info.AliasManager;
                info.AliasManager = null;
                Stack <KeyWordFromItem> stkFrom = new Stack <KeyWordFromItem>();
                while (from != null)
                {
                    stkFrom.Push(from);
                    from = from.Previous as KeyWordFromItem;
                }
                while (stkFrom.Count > 0)
                {
                    from = stkFrom.Pop();
                    from.Tran(info);
                }
                info.AliasManager = manager;
            }
        }
Exemplo n.º 2
0
        ///// <summary>
        ///// 要查询的字段
        ///// </summary>
        //internal BQLParamHandle[] Parameters
        //{
        //    get
        //    {
        //        return parameters;
        //    }
        //}
        /// <summary>
        /// From哪些表
        /// </summary>
        /// <param name="tables">表</param>
        /// <returns></returns>
        public KeyWordFromItem From(params BQLTableHandle[] tables)
        {
            KeyWordFromItem fromItem = new KeyWordFromItem(tables, this);

            return(fromItem);
        }