Ejemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Field"/> class.
 /// </summary>
 /// <param name="fields">The fields.</param>
 /// <param name="type">The type.</param>
 /// <param name="name">The name.</param>
 /// <param name="caption">The caption.</param>
 /// <param name="size">The size.</param>
 /// <param name="flags">The flags.</param>
 protected Field(ICollection <Field> fields, FieldType type, string name, LocalText caption, int size, FieldFlags flags)
 {
     this.name        = name;
     expression       = "T0." + SqlSyntax.AutoBracket(name);
     this.size        = size;
     this.flags       = flags;
     this.type        = type;
     index            = -1;
     minSelectLevel   = SelectLevel.Auto;
     naturalOrder     = 0;
     this.caption     = caption;
     customAttributes = Array.Empty <object>();
     if (fields != null)
     {
         fields.Add(this);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Adds a field of a given table alias to the SELECT statement.
        /// </summary>
        /// <param name="query">The query.</param>
        /// <param name="alias">A table alias that will be prepended to the field name with "." between</param>
        /// <param name="field">A field that only its field name will be used. It won't be set as a target.</param>
        /// <param name="columnName">A column name</param>
        /// <returns>
        /// The query itself.
        /// </returns>
        /// <exception cref="ArgumentNullException">
        /// alias
        /// or
        /// field
        /// or
        /// columnName
        /// </exception>
        /// <remarks>
        /// Field is not set as a target, unlike field only overload, only field name is used.
        /// </remarks>
        public static SqlQuery Select(this SqlQuery query, IAlias alias, IField field, string columnName)
        {
            if (alias == null)
            {
                throw new ArgumentNullException("alias");
            }

            if (field == null)
            {
                throw new ArgumentNullException("field");
            }

            if (columnName == null)
            {
                throw new ArgumentNullException("columnName");
            }

            return(query.Select(alias.NameDot + SqlSyntax.AutoBracket(field.Name), columnName));
        }
Ejemplo n.º 3
0
        /// <summary>
        ///   Formats an INSERT query.</summary>
        /// <param name="tableName">
        ///   Tablename (required).</param>
        /// <param name="nameValuePairs">
        ///   Field names and values. Must be passed in the order of <c>[field1, value1, field2,
        ///   value2, ...., fieldN, valueN]</c>. It must have even number of elements.</param>
        /// <returns>
        ///   Formatted query.</returns>
        public static string Format(string tableName, List <string> nameValuePairs)
        {
            if (tableName == null || tableName.Length == 0)
            {
                throw new ArgumentNullException(tableName);
            }

            if (nameValuePairs == null)
            {
                throw new ArgumentNullException("nameValuePairs");
            }

            if (nameValuePairs.Count % 2 != 0)
            {
                throw new ArgumentOutOfRangeException("nameValuePairs");
            }

            StringBuilder sb = new StringBuilder("INSERT INTO ", 64 + nameValuePairs.Count * 16);

            sb.Append(SqlSyntax.AutoBracketValid(tableName));
            sb.Append(" (");
            for (int i = 0; i < nameValuePairs.Count; i += 2)
            {
                if (i > 0)
                {
                    sb.Append(", ");
                }
                sb.Append(SqlSyntax.AutoBracket(nameValuePairs[i]));
            }
            sb.Append(") VALUES (");
            for (int i = 1; i < nameValuePairs.Count; i += 2)
            {
                if (i > 1)
                {
                    sb.Append(", ");
                }
                sb.Append(nameValuePairs[i]);
            }
            sb.Append(')');

            return(sb.ToString());
        }