Example #1
0
        /// <summary>
        /// Read implementation
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        private static DBQuery sReadXml(System.Xml.XmlReader reader, XmlReaderContext context)
        {
            DBQuery  q = null;
            DBClause c = null;

            while (reader.EOF == false && reader.NodeType != System.Xml.XmlNodeType.Element)
            {
                if (!reader.Read())
                {
                    break;
                }
            }

            if (reader.NodeType == System.Xml.XmlNodeType.Element && XmlHelper.IsElementMatch(XmlHelper.Statement, reader, context))
            {
                while (reader.Read())
                {
                    if (reader.NodeType == System.Xml.XmlNodeType.Element)
                    {
                        break;
                    }
                }

                if (!reader.EOF)
                {
                    c = context.Factory.Read(reader.LocalName, reader, context);
                    if (c is DBQuery)
                    {
                        q = (DBQuery)c;
                    }
                    else
                    {
                        throw XmlHelper.CreateException("The Xml stream did not begin with a valid DBQuery node, and cannot be deserialized", reader, null);
                    }
                }
                else
                {
                    throw XmlHelper.CreateException("The Xml stream did not begin with a valid DBQuery node, and cannot be deserialized", reader, null);
                }
            }
            if (!reader.EOF)
            {
                while (reader.Read())
                {
                    if (reader.NodeType == System.Xml.XmlNodeType.Element && reader.Name == XmlHelper.Parameters)
                    {
                        while (reader.Read())
                        {
                            if (reader.NodeType == System.Xml.XmlNodeType.Element && XmlHelper.IsElementMatch(XmlHelper.Parameter, reader, context))
                            {
                                string  name = reader.GetAttribute(XmlHelper.Name);
                                DBParam param;
                                if (context.Parameters.TryGetParameter(name, out param))
                                {
                                    param.ReadXml(reader, context);
                                }
                            }
                        }
                    }
                }
            }

            return(q);
        }
Example #2
0
        /// <summary>
        /// Inputs the XmlReader and attempts to parse as a valid DbQuery with the
        /// specified element namespace and prefix
        /// </summary>
        /// <param name="reader">The reader to load the DbQuery from</param>
        /// <param name="ns">The namespace of the DBQuery elements</param>
        /// <param name="prefix">The prefix</param>
        /// <param name="factory">An XmlFactory that creates new DBClause instances from their known names</param>
        /// <returns>The parsed DbQuery</returns>
        public static DBQuery ReadXml(System.Xml.XmlReader reader, string ns, string prefix, XmlFactory factory)
        {
            XmlReaderContext context = new XmlReaderContext(ns, prefix, factory);

            return(DBQuery.sReadXml(reader, context));
        }
Example #3
0
        /// <summary>
        /// Begins a new SELECT DISTINCT statement. Add fields and tables by using the methods on the instance returned
        /// </summary>
        /// <returns>A new DBSelectQuery to support statement chaining</returns>
        public static DBSelectQuery SelectDistinct()
        {
            DBSelectQuery q = DBQuery.Select();

            return(q.Distinct());
        }
Example #4
0
        //
        // readXml methods
        //

        #region public static DBQuery ReadXml(System.Xml.XmlReader reader)
        /// <summary>
        /// Inputs the XmlReader and attempts to parse as a valid DbQuery
        /// </summary>
        /// <param name="reader">The reader to load the DbQuery from</param>
        /// <returns>The parsed DbQuery</returns>
        public static DBQuery ReadXml(System.Xml.XmlReader reader)
        {
            return(DBQuery.ReadXml(reader, "http://schemas.perceiveit.co.uk/Query", ""));
        }
Example #5
0
        /// <summary>
        /// Begins a new SELECT statement with a limit of [count] items returned
        /// </summary>
        /// <param name="count">The total number of items to return</param>
        /// <returns>A new DBSelectQuery to support statement chaining</returns>
        public static DBSelectQuery SelectTopN(int count)
        {
            DBSelectQuery q = DBQuery.Select();

            return(q.TopN(count));
        }