/// <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; } }
///// <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); }