Ejemplo n.º 1
0
        /// <summary>
        /// 解释 GROUP BY 子句。
        /// </summary>
        /// <param name="DbParameters">用于缓存在解释过程中可能会产生的参数。</param>
        /// <returns></returns>
        public override string Parsing(ref List <IDbDataParameter> DbParameters)
        {
            GroupByBlock     grpB    = (GroupByBlock)this.Description;
            StringBuilder    cBuffer = new StringBuilder(" GROUP BY");
            FieldDescription fd      = grpB.Fields[0];

            fd.DescriptionParserAdapter = grpB.DescriptionParserAdapter;
            cBuffer.AppendFormat(" {0}", fd.GetParser().Parsing(ref DbParameters));
            if (grpB.Fields.Count > 1)
            {
                for (int i = 1; i < grpB.Fields.Count; ++i)
                {
                    fd = grpB.Fields[i];
                    fd.DescriptionParserAdapter = grpB.DescriptionParserAdapter;
                    cBuffer.AppendFormat(", {0}", fd.GetParser().Parsing(ref DbParameters));
                }
            }
            return(cBuffer.ToString());
        }
Ejemplo n.º 2
0
 /// <summary>
 /// IsNotNull 函数解释。
 /// </summary>
 /// <param name="D">FunDescription 对象。</param>
 /// <param name="DbParameters">用于缓存在解释过程中可能会产生的参数。</param>
 /// <returns></returns>
 protected virtual string IsNotNullParsing(FunDescription D, ref List <IDbDataParameter> DbParameters)
 {
     if (D.Parameter is FieldDescription)
     {
         FieldDescription desObject = (FieldDescription)(D.Parameter);
         desObject.DescriptionParserAdapter = D.DescriptionParserAdapter;
         StringBuilder cBuffer = new StringBuilder(desObject.GetParser().Parsing(ref DbParameters));
         cBuffer.Append(" IS NOT NULL");
         return(cBuffer.ToString());
     }
     else
     {
         throw new Exception("IsNotNull 函数的参数必须是一个字段类型。");
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// NotIn 函数解释。
        /// </summary>
        /// <param name="D">FunDescription 对象。</param>
        /// <param name="DbParameters">用于缓存在解释过程中可能会产生的参数。</param>
        /// <returns></returns>
        protected virtual string NotInParsing(FunDescription D, ref List <IDbDataParameter> DbParameters)
        {
            object[]         values  = (object[])D.Parameter;
            StringBuilder    cBuffer = new StringBuilder();
            FieldDescription fd      = (FieldDescription)values[0];

            fd.DescriptionParserAdapter = D.DescriptionParserAdapter;
            cBuffer.Append(fd.GetParser().Parsing(ref DbParameters));
            cBuffer.Append(" NOT IN (");
            bool AppendComma = false; // 是否加逗号标识。

            for (int i = 1; i < values.Length; ++i)
            {
                string buf;
                if (values[i] is IDescription)
                {
                    IDescription desObject = (IDescription)values[i];
                    desObject.DescriptionParserAdapter = D.DescriptionParserAdapter;
                    buf = desObject.GetParser().Parsing(ref DbParameters);
                    if (buf[0] == (char)0x20)
                    {
                        buf = buf.Remove(0, 1);
                    }
                }
                else
                {
                    IDbDataParameter p = Adapter.CreateDbParameter(string.Format("uf_inValue{0}", i), values[i]);
                    AddDbParameter(ref DbParameters, p);
                    buf = p.ParameterName;
                }
                if (AppendComma)
                {
                    cBuffer.AppendFormat(", {0}", buf);
                }
                else
                {
                    cBuffer.Append(buf);
                    AppendComma = true;
                }
            }
            cBuffer.Append(")");
            return(cBuffer.ToString());
        }