Exemplo n.º 1
0
        /// <summary>
        /// 解释 FROM 子句。
        /// </summary>
        /// <param name="DbParameters">用于缓存在解释过程中可能会产生的参数。</param>
        /// <returns></returns>
        public override string Parsing(ref List <IDbDataParameter> DbParameters)
        {
            FromBlock     fb      = (FromBlock)this.Description;
            StringBuilder cBuffer = new StringBuilder(" FROM");

            foreach (object item in fb.Content)
            {
                if (item is IDescription)
                {
                    IDescription D = (IDescription)item;
                    D.DescriptionParserAdapter = fb.DescriptionParserAdapter;
                    cBuffer.Append(D.GetParser().Parsing(ref DbParameters));
                }
                else
                {
                    if (cBuffer[cBuffer.Length - 1] == (char)0x20)
                    {
                        cBuffer.Append(item);
                    }
                    else
                    {
                        cBuffer.AppendFormat(" {0}", item);
                    }
                }
            }
            return(cBuffer.ToString());
        }
Exemplo n.º 2
0
 /// <summary>
 /// 创建一个 <see cref="MultiQuerySelector"/> 的对象实例.
 /// </summary>
 /// <param name="engine">用于执行查询的数据引擎.</param>
 internal MultiQuerySelector(DataEngine engine)
 {
     ReadEngine    = engine;
     Command       = new DbCommandBuilder();
     fBlock        = new FromBlock();
     AgentsIndexes = new Dictionary <Type, AgentBufferItem>();
     Agents        = new List <AgentBufferItem>();
 }