예제 #1
0
        /// <summary>
        /// Reads each inner Xml element and returns true if it was a known xml element
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        protected override bool ReadAnInnerElement(System.Xml.XmlReader reader, XmlReaderContext context)
        {
            bool b;

            if (this.IsElementMatch(XmlHelper.Into, reader, context) && !reader.IsEmptyElement && reader.Read())
            {
                this._into = (DBTable)this.ReadNextInnerClause(XmlHelper.Into, reader, context);
                b          = true;
            }
            else if (this.IsElementMatch(XmlHelper.Fields, reader, context))
            {
                this._fields = (DBSelectSet)context.Factory.Read(XmlHelper.Fields, reader, context);
                b            = true;
            }
            else if (this.IsElementMatch(XmlHelper.Values, reader, context))
            {
                this._values = (DBValueSet)context.Factory.Read(XmlHelper.Values, reader, context);
                b            = true;
            }
            else if (this.IsElementMatch(XmlHelper.Select, reader, context))
            {
                this._innerselect = (DBSelectQuery)context.Factory.Read(XmlHelper.Select, reader, context);
                this._innerselect.IsInnerQuery = true;
                b = true;
            }
            else
            {
                b = base.ReadAnInnerElement(reader, context);
            }

            return(b);
        }
예제 #2
0
        /// <summary>
        /// Begins a new SELECT [table].* statment
        /// </summary>
        /// <param name="table">The name (or alias) of the table</param>
        /// <returns>A new DBSelectQuery to support statement chaining</returns>
        public static DBSelectQuery SelectAll(string table)
        {
            DBSelectQuery q = new DBSelectQuery();

            q.SelectSet = DBSelectSet.SelectAll(table);
            q.Last      = q.SelectSet;
            return(q);
        }
예제 #3
0
        /// <summary>
        /// Begins a new SELECT statement with the clause as the first value returned.
        /// </summary>
        /// <param name="clause">Any valid SQL clause (DBConst, DBParam, etc.) </param>
        /// <returns>A new DBSelectQuery to support statement chaining</returns>
        public static DBSelectQuery Select(DBClause clause)
        {
            DBSelectQuery q = new DBSelectQuery();

            q.SelectSet = DBSelectSet.Select(clause);
            q.Last      = q.SelectSet;
            return(q);
        }
예제 #4
0
        /// <summary>
        /// Begins a new SELECT [catalog].[owner].[table].* statment
        /// </summary>
        /// <param name="table">The name (or alias) of the table</param>
        /// <param name="owner">The schema owner of the table</param>
        /// <param name="catalog">The catalog or database of the table</param>
        /// <returns>A new DBSelectQuery to support statement chaining</returns>
        public static DBSelectQuery SelectAll(string catalog, string owner, string table)
        {
            DBSelectQuery q = new DBSelectQuery();

            q.SelectSet = DBSelectSet.SelectAll(catalog, owner, table);
            q.Last      = q.SelectSet;
            return(q);
        }
예제 #5
0
        public static DBSelectSet SelectAggregate(AggregateFunction funct, DBClause field)
        {
            DBAggregate agg = DBAggregate.Aggregate(funct, field);
            DBSelectSet sel = DBSelectSet.Select(agg);

            sel.Last = agg;
            return(sel);
        }
예제 #6
0
        public static DBSelectSet Select(DBClause fref)
        {
            DBSelectSet set = Select();

            set.Results.Add(fref);
            set.Last = fref;
            return(set);
        }
예제 #7
0
        /// <summary>
        /// Begins a new SELECT statement with a COUNT([table].[field]) as the first result
        /// </summary>
        /// <param name="field">The name of the field to count</param>
        /// <param name="table">The name of the table (or alias) containing the field to count</param>
        /// <returns>A new DBSelectQuery to support statement chaining</returns>
        public static DBSelectQuery SelectCount(string table, string field)
        {
            DBSelectSet   sel = DBSelectSet.SelectCount(table, field);
            DBSelectQuery q   = new DBSelectQuery();

            q.SelectSet = sel;
            return(q);
        }
예제 #8
0
        //
        // DBSelectQuery factory methods
        //

        #region public static DBQuery SelectCount() + 3 overloads

        /// <summary>
        /// Begins a new SELECT statement with a COUNT(*) as the first result
        /// </summary>
        /// <returns>A new DBSelectQuery to support statement chaining</returns>
        public static DBSelectQuery SelectCount()
        {
            DBSelectSet   sel = DBSelectSet.SelectCount();
            DBSelectQuery q   = new DBSelectQuery();

            q.SelectSet = sel;
            q.Last      = sel;
            return(q);
        }
예제 #9
0
        /// <summary>
        /// Begins a new SELECT statement with a set of fields as the result
        /// </summary>
        /// <param name="fields">The name of the fields to select</param>
        /// <returns>A new DBSelectQuery to support statement chaining</returns>
        public static DBSelectQuery SelectFields(params string[] fields)
        {
            DBSelectSet   sel   = DBSelectSet.SelectFields(fields);
            DBSelectQuery query = new DBSelectQuery();

            query.SelectSet = sel;
            query.Last      = sel;

            return(query);
        }
예제 #10
0
        public static DBSelectSet SelectAll()
        {
            DBSelectSet   set  = new DBSelectSet();
            DBFieldAllRef fref = new DBFieldAllRef();

            set.Results.Add(fref);
            set.Last = fref;

            return(set);
        }
예제 #11
0
        public static DBSelectSet SelectAll(string table)
        {
            DBSelectSet   set  = new DBSelectSet();
            DBFieldAllRef fref = new DBFieldAllRef();

            fref.Table = table;
            set.Results.Add(fref);
            set.Last = fref;

            return(set);
        }
예제 #12
0
        /// <summary>
        /// Begins a new SELECT statement with the clauses as the first values returned
        /// </summary>
        /// <param name="clauses">Any valid clause (DBConst, DBParam, etc)</param>
        /// <returns>A new DBSelectQuery to support statement chaining</returns>
        public static DBSelectQuery Select(params DBClause[] clauses)
        {
            DBSelectQuery q = new DBSelectQuery();

            q.SelectSet = DBSelectSet.Select();
            foreach (DBClause c in clauses)
            {
                q.SelectSet.And(c);
            }
            q.Last = q.SelectSet;
            return(q);
        }
예제 #13
0
 /// <summary>
 /// Specify one of the columns to be set when performing this insert
 /// </summary>
 /// <param name="field">Any clause</param>
 /// <returns>Itself so that statements can be chained</returns>
 public DBInsertQuery Field(DBClause field)
 {
     if (_fields == null)
     {
         _last = _fields = DBSelectSet.Select(field);
     }
     else
     {
         _last = _fields.And(field);
     }
     return(this);
 }
예제 #14
0
        public static DBSelectSet SelectFields(params string[] fields)
        {
            DBSelectSet set = new DBSelectSet();

            if (fields != null)
            {
                foreach (string fld in fields)
                {
                    DBField fref = DBField.Field(fld);
                    set.Results.Add(fref);
                    set.Last = fref;
                }
            }
            return(set);
        }
예제 #15
0
 /// <summary>
 /// Specify a range of columns (as an array or comma separated list) to be set when performing this insert
 /// </summary>
 /// <param name="fields">The fields to set</param>
 /// <returns>Itself so that statements can be chained</returns>
 public DBInsertQuery Fields(params string[] fields)
 {
     if (_fields == null)
     {
         _last = _fields = DBSelectSet.SelectFields(fields);
     }
     else
     {
         foreach (string fld in fields)
         {
             _last = _fields.And(fld);
         }
     }
     return(this);
 }
예제 #16
0
        protected virtual DBClause DoRead(string element, XmlReader reader, XmlReaderContext context)
        {
            DBClause c = null;

            switch (element)
            {
            case (XmlHelper.Select):
                c = DBSelectQuery.Select();
                break;

            case (XmlHelper.Delete):
                c = DBDeleteQuery.Delete();
                break;

            case (XmlHelper.Update):
                c = DBUpdateQuery.Update();
                break;

            case (XmlHelper.Insert):
                c = DBInsertQuery.InsertInto();
                break;

            case (XmlHelper.Script):
                c = DBQuery.Script();
                break;

            case (XmlHelper.Use):
                c = DBUseQuery.Use();
                break;

            case (XmlHelper.Table):
                c = DBTable.Table();
                break;

            case (XmlHelper.Fields):
                c = DBSelectSet.Select();
                break;

            case (XmlHelper.AField):
                c = DBField.Field();
                break;

            case (XmlHelper.AllFields):
                c = DBField.AllFields();
                break;

            case (XmlHelper.From):
                c = DBTableSet.From();
                break;

            case (XmlHelper.Where):
                c = DBFilterSet.Where();
                break;

            case (XmlHelper.Group):
                c = DBGroupBySet.GroupBy();
                break;

            case (XmlHelper.Order):
                c = DBOrderSet.OrderBy();
                break;

            case (XmlHelper.Assignments):
                c = DBAssignSet.Assign();
                break;

            case (XmlHelper.Values):
                c = DBValueSet.Values();
                break;

            case (XmlHelper.Join):
                c = DBJoin.Join();
                break;

            case (XmlHelper.Function):
                c = DBFunction.Function();
                break;

            case (XmlHelper.Constant):
                c = DBConst.Null();
                break;

            case (XmlHelper.Top):
                c = DBTop.Top();
                break;

            case (XmlHelper.UnaryOp):
                c = DBComparison.Not();
                break;

            case (XmlHelper.Compare):
                c = DBComparison.Compare();
                break;

            case (XmlHelper.Between):
                c = DBComparison.Between();
                break;

            case (XmlHelper.Parameter):
                //parameter is a special case.
                //we add them to akeyed colection if they are not already registered
                //then at the end we set the values at the end
                string  name = reader.GetAttribute(XmlHelper.Name);
                DBParam aparam;
                if (context.Parameters.TryGetParameter(name, out aparam))
                {
                    c = aparam;
                }
                else
                {
                    aparam      = DBParam.Param();
                    aparam.Name = name;
                    context.Parameters.Add(aparam);
                    c = aparam;
                }
                break;

            case (XmlHelper.OrderBy):
                c = DBOrder.OrderBy();
                break;

            case (XmlHelper.Calculation):
                c = DBCalc.Calculate();
                break;

            case (XmlHelper.Aggregate):
                c = DBAggregate.Aggregate();
                break;

            case (XmlHelper.ValueGroup):
                c = DBValueGroup.Empty();
                break;

            case (XmlHelper.BooleanOperator):
                c = DBBooleanOp.Compare();
                break;

            case (XmlHelper.Assign):
                c = DBAssign.Assign();
                break;

            case (XmlHelper.InnerSelect):
                c = DBSubQuery.SubSelect();
                break;

            case (XmlHelper.Multiple):
                c = DBMultiComparisonRef.Many();
                break;

            case (XmlHelper.QueryOptionSet):
                c = new DBQueryHintOptionSet();
                break;

            case (XmlHelper.QueryOption):
                c = DBQueryHintOption.QueryOption();
                break;

            case (XmlHelper.CreateSproc):
                c = DBCreateProcedureQuery.CreateProcedure();
                break;

            case (XmlHelper.Declare):
                c = DBDeclaration.Declare();
                break;

            case (XmlHelper.CreateTable):
                c = DBCreateTableQuery.Table();
                break;

            case (XmlHelper.ColumnDefinition):
                c = DBColumn.Column();
                break;

            case (XmlHelper.PrimaryKey):
                c = DBPrimaryKey.PrimaryKey();
                break;

            case (XmlHelper.ForeignKey):
                c = DBForeignKey.ForeignKey();
                break;

            case (XmlHelper.CreateIndex):
                c = DBCreateIndexQuery.Index();
                break;

            case (XmlHelper.CreateView):
                c = DBCreateViewQuery.CreateView();
                break;

            case (XmlHelper.CreateSequence):
                c = DBCreateSequenceQuery.Sequence();
                break;

            case (XmlHelper.DropTable):
                c = DBDropTableQuery.DropTable();
                break;

            case (XmlHelper.DropIndex):
                c = DBDropIndexQuery.DropIndex();
                break;

            case (XmlHelper.DropView):
                c = DBDropViewQuery.DropView();
                break;

            case (XmlHelper.DropSproc):
                c = DBDropProcedureQuery.DropProcedure();
                break;

            case (XmlHelper.DropSequence):
                c = DBDropSequenceQuery.DropSequence();
                break;

            default:
                throw XmlHelper.CreateException("The XML data could not be deserialized because the element {1} was not recognised. {0}", reader, null, element);
            }

            if (c != null)
            {
                c.ReadXml(reader, context);
            }

            return(c);
        }
예제 #17
0
        public static DBSelectSet Select()
        {
            DBSelectSet set = new DBSelectSet();

            return(set);
        }