示例#1
0
        // ...
        /// <summary>
        /// Construye un nuevo objeto de la clase <code>StringBuilderClass</code>,
        /// que desciende de <code>ObjectClass</code>,
        /// y ejecuta el inicializador virtual, por-de-facto.
        /// Para ejecutar otro inicializador,
        /// se tiene que realizar estas operaciones como pasos separados.
        /// </summary>
        /// <returns>Nuevo objeto</returns>
        public static new StringBuilderClass Factory()
        {
            StringBuilderClass Result = new StringBuilderClass();
                Result.Create();

                return Result;
        }
示例#2
0
        /// <summary>
        /// Genera una lista de condiciones en la clausula "WHERE",
        /// para una sentencia S.Q.L.
        /// </summary>
        /// <param name="IncludeWhere">Indica si se genera la palabra reservada "WHERE"</param>
        /// <returns>Lista de filtroscomo texto</returns>
        public string ToSQL(bool IncludeWhere, bool IncludeParenthesis, bool FirstItemNoConcat)
        {
            string Result = "";

                // --> preparar manejador texto
                StringBuilderClass strSentence = new StringBuilderClass();

                if (IncludeWhere)
                {
                    strSentence.AppendLine("WHERE (1=1) ");
                }

                if (IncludeParenthesis)
                {
                    if (IncludeWhere)
                    {
                        strSentence.Append("AND ");
                    }

                    strSentence.AppendLine("( ");
                }

                int AMax = this.InternalList.Count;
                for (int AIndex = 0; AIndex < AMax; AIndex++)
                {
                    FilterClass EachFilter = this.InternalList[AIndex];

                    bool IgnoreConcatOperator =
                      (AIndex == 0) && FirstItemNoConcat;

                    String strPredicate = EachFilter.ToSQL(IgnoreConcatOperator);

                    strSentence.AppendLine(strPredicate);
                } // for

                if (IncludeParenthesis)
                {
                    strSentence.AppendLine(") ");
                }

                // ahora si, convertir a una cadena
                Result = strSentence.ToString();

                // --> liberar manejador texto
                strSentence.Destroy();
                strSentence = null;

                return Result;
        }
示例#3
0
 /// <summary>
 /// Desecha objeto de la clase <code>StringBuilderClass</code>,
 /// que desciende de <code>ObjectClass</code>,
 /// ejecutando el metodo finalizador, por-de-facto.
 /// Para ejecutar otro finalizador,
 /// se tiene que realizar estas operaciones como pasos separados.
 /// </summary>
 /// <param name="AObject">Objeto que se desechara de memoria</param>
 public static void Disposer(ref StringBuilderClass AObject)
 {
     if (AObject != null)
         {
             AObject.Destroy();
             AObject = null;
         } // if (AObject != null)
 }