/// <summary>
        /// Adds the name of a column to this PrimaryKey (synonomous with Add)
        /// </summary>
        /// <param name="name">Cannot be null or empty</param>
        /// <returns>Itself</returns>
        public DBPrimaryKey Column(string name)
        {
            this.ValidateColumnName(name);
            DBColumn col = DBColumn.Column(name);

            _columns.Add(col);
            return(this);
        }
        //
        // public instance methods
        //

        #region public DBPrimaryKey Columns(params string[] names)

        /// <summary>
        /// Adds all the names of the columns to this Primary Key
        /// </summary>
        /// <param name="names">All the names which cannot be null or empty</param>
        /// <returns></returns>
        public DBPrimaryKey Columns(params string[] names)
        {
            foreach (string name in names)
            {
                this.ValidateColumnName(name);
                _columns.Add(DBColumn.Column(name));
            }
            return(this);
        }
        //
        // methods
        //

        #region public DBForeignKey Column(string name)

        /// <summary>
        /// Appends a column to the Foreign Key constraint either with the table
        /// called or the referenced table depending on the order of the statement
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public DBForeignKey Column(string name)
        {
            DBColumn fld = DBColumn.Column(name);

            if (_hasreference)
            {
                this.ReferenceColumns.Add(fld);
            }
            else
            {
                this.TableColumns.Add(fld);
            }
            return(this);
        }
        /// <summary>
        /// Creates a new Column reference and Adds it to this tables list of columns
        /// </summary>
        /// <param name="columnName"></param>
        /// <param name="type"></param>
        /// <param name="maxlength"></param>
        /// <param name="flags"></param>
        /// <returns></returns>
        public DBCreateTableQuery Add(string columnName, DbType type, int maxlength, DBColumnFlags flags)
        {
            DBColumn col = DBColumn.Column(columnName, type, maxlength, flags);

            return(Add(col));
        }
        //
        // instance methods
        //

        #region public DBCreateTableQuery Add(string columnname, DbType type) + 4 overloads

        /// <summary>
        /// Creates a new Column reference and Adds it to this tables list of columns
        /// </summary>
        /// <param name="columnname"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public DBCreateTableQuery Add(string columnname, DbType type)
        {
            DBColumn col = DBColumn.Column(columnname, type);

            return(Add(col));
        }
Exemple #6
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);
        }