Esempio n. 1
0
        //[ExpectedException(typeof(InvalidQueryException))]
        public void PagingNoOrder()
        {
            SelectQuery query = new SelectQuery();

            query.Columns.Add(new SelectColumn("name"));
            query.FromClause.BaseTable = FromTerm.Table("customers");

            ;
            Assert.Throws <InvalidQueryException>(() => RenderPage(0, 2, 3, query));
        }
Esempio n. 2
0
        public virtual void TableSpace1()
        {
            SelectQuery query = new SelectQuery();

            query.TableSpace = "sqlom.dbo";
            query.Columns.Add(new SelectColumn("name"));
            query.FromClause.BaseTable = FromTerm.Table("customers", "t");

            RenderSelect(query);
        }
Esempio n. 3
0
        public virtual void Join4()
        {
            SelectQuery query = new SelectQuery();

            query.Columns.Add(new SelectColumn("*"));
            query.FromClause.BaseTable = FromTerm.Table("customers");
            query.FromClause.Join(JoinType.Cross, query.FromClause.BaseTable, FromTerm.Table("products"));

            RenderSelect(query);
        }
Esempio n. 4
0
        public virtual void TableSpace2()
        {
            SelectQuery query = new SelectQuery();

            query.TableSpace = "foo.bar";
            query.Columns.Add(new SelectColumn("*"));
            query.FromClause.BaseTable = FromTerm.Table("customers", "t1", "sqlom", "dbo");
            query.FromClause.Join(JoinType.Inner, query.FromClause.BaseTable, FromTerm.Table("customers", "t2", "dbo"), "customerId", "customerId");

            RenderSelect(query);
        }
Esempio n. 5
0
        public virtual void Paging2()
        {
            SelectQuery query = new SelectQuery();

            query.Columns.Add(new SelectColumn("name"));
            query.FromClause.BaseTable = FromTerm.Table("customers");
            query.OrderByTerms.Add(new OrderByTerm("name", null, OrderByDirection.Descending));
            query.OrderByTerms.Add(new OrderByTerm("birthDate", null, OrderByDirection.Ascending));

            int count = RenderRowCount(query);

            RenderPage(1, 2, count, query);
        }
Esempio n. 6
0
        public virtual void Join3()
        {
            FromTerm tProducts = FromTerm.Table("products", "p");
            FromTerm tOrders   = FromTerm.Table("orders", "o");

            SelectQuery query = new SelectQuery();

            query.Columns.Add(new SelectColumn("name", tProducts));
            query.Columns.Add(new SelectColumn("date", tOrders));
            query.FromClause.BaseTable = tOrders;
            query.FromClause.Join(JoinType.Right, query.FromClause.BaseTable, tProducts, "productId", "productId");

            RenderSelect(query);
        }
Esempio n. 7
0
        public virtual void ComplicatedQuery()
        {
            FromTerm tCustomers = FromTerm.Table("customers", "c");
            FromTerm tProducts  = FromTerm.Table("products", "p");
            FromTerm tOrders    = FromTerm.Table("orders", "o");

            SelectQuery query = new SelectQuery();

            query.Columns.Add(new SelectColumn("name", tCustomers));
            query.Columns.Add(new SelectColumn(SqlExpression.IfNull(SqlExpression.Field("name", tCustomers), SqlExpression.Constant(SqlConstant.String("name"))), "notNull"));
            query.Columns.Add(new SelectColumn(SqlExpression.Null(), "nullValue"));
            query.Columns.Add(new SelectColumn("name", tProducts, "productName", SqlAggregationFunction.None));
            query.Columns.Add(new SelectColumn("price", tProducts));

            query.FromClause.BaseTable = tCustomers;
            query.FromClause.Join(JoinType.Left, tCustomers, tOrders, "customerId", "customerId");
            query.FromClause.Join(JoinType.Inner, tOrders, tProducts, "productId", "productId");

            query.WherePhrase.Terms.Add(WhereTerm.CreateCompare(SqlExpression.Field("name", tCustomers), SqlExpression.String("John"), CompareOperator.Equal));
            query.WherePhrase.Terms.Add(WhereTerm.CreateCompare(SqlExpression.String("Dohe"), SqlExpression.Field("name", tCustomers), CompareOperator.NotEqual));
            query.WherePhrase.Terms.Add(WhereTerm.CreateCompare(SqlExpression.Field("name", tCustomers), SqlExpression.String("J%"), CompareOperator.Like));
            query.WherePhrase.Terms.Add(WhereTerm.CreateCompare(SqlExpression.Date(DateTime.Now), SqlExpression.Field("date", tOrders), CompareOperator.Greater));
            query.WherePhrase.Terms.Add(WhereTerm.CreateCompare(SqlExpression.Number(10), SqlExpression.Number(9), CompareOperator.Greater));
            query.WherePhrase.Terms.Add(WhereTerm.CreateCompare(SqlExpression.Number(10), SqlExpression.Number(9), CompareOperator.GreaterOrEqual));
            query.WherePhrase.Terms.Add(WhereTerm.CreateCompare(SqlExpression.Number(10), SqlExpression.Number(11.5), CompareOperator.LessOrEqual));
            query.WherePhrase.Terms.Add(WhereTerm.CreateCompare(SqlExpression.Number(1), SqlExpression.Number(1), CompareOperator.BitwiseAnd));

            WhereClause group = new WhereClause(WhereClauseRelationship.Or);

            group.Terms.Add(WhereTerm.CreateBetween(SqlExpression.Field("price", tProducts), SqlExpression.Number(1), SqlExpression.Number(10)));
            group.Terms.Add(WhereTerm.CreateIn(SqlExpression.Field("name", tProducts), SqlConstantCollection.FromList(new string[] { "Nail", "Hamer", "Skrewdriver" })));
            group.Terms.Add(WhereTerm.CreateIn(SqlExpression.Field("name", tProducts), "select name from products"));
            group.Terms.Add(WhereTerm.CreateNotIn(SqlExpression.Field("name", tProducts), SqlConstantCollection.FromList(new string[] { "Unkown" })));
            group.Terms.Add(WhereTerm.CreateNotIn(SqlExpression.Field("name", tProducts), "select name from products"));
            group.Terms.Add(WhereTerm.CreateIsNull(SqlExpression.Field("name", tProducts)));
            group.Terms.Add(WhereTerm.CreateIsNotNull(SqlExpression.Field("name", tProducts)));
            group.Terms.Add(WhereTerm.CreateExists("select productId from products"));
            group.Terms.Add(WhereTerm.CreateNotExists("select productId from products"));

            query.WherePhrase.SubClauses.Add(group);

            query.OrderByTerms.Add(new OrderByTerm("name", tCustomers, OrderByDirection.Descending));
            query.OrderByTerms.Add(new OrderByTerm("price", OrderByDirection.Ascending));

            query.Distinct = true;
            query.Top      = 10;

            RenderSelect(query);
        }
Esempio n. 8
0
        public virtual void Join2()
        {
            FromTerm tCustomers = FromTerm.Table("customers");
            FromTerm tProducts  = FromTerm.Table("products", "p");
            FromTerm tOrders    = FromTerm.Table("orders", "o");

            SelectQuery query = new SelectQuery();

            query.Columns.Add(new SelectColumn("name", tCustomers));
            query.Columns.Add(new SelectColumn("name", tProducts));
            query.FromClause.BaseTable = tCustomers;
            query.FromClause.Join(JoinType.Left, tCustomers, tOrders, new JoinCondition("customerId"));
            query.FromClause.Join(JoinType.Left, tOrders, tProducts, new JoinCondition("productId", "productId"));

            RenderSelect(query);
        }
Esempio n. 9
0
        public virtual void SubQuery()
        {
            FromTerm tCustomers = FromTerm.Table("customers");

            SelectQuery subQuery = new SelectQuery();

            subQuery.Top = 1;
            subQuery.Columns.Add(new SelectColumn("name", tCustomers));
            subQuery.FromClause.BaseTable = FromTerm.Table("customers");

            SelectQuery query = new SelectQuery();

            query.Columns.Add(new SelectColumn("name", tCustomers));
            query.Columns.Add(new SelectColumn(SqlExpression.SubQuery("select count(*) from customers"), "cnt"));
            query.Columns.Add(new SelectColumn(SqlExpression.SubQuery(subQuery), "subq"));
            query.FromClause.BaseTable = tCustomers;
            query.WherePhrase.Terms.Add(WhereTerm.CreateCompare(SqlExpression.Field("customerId", tCustomers), SqlExpression.SubQuery("select customerId from customers where name='John'"), CompareOperator.Equal));

            RenderSelect(query);
        }
Esempio n. 10
0
        public virtual void Paging4()
        {
            FromTerm tCustomers = FromTerm.Table("customers");
            FromTerm tProducts  = FromTerm.Table("products", "p");
            FromTerm tOrders    = FromTerm.Table("orders", "o");

            SelectQuery query = new SelectQuery();

            query.Columns.Add(new SelectColumn("name", tCustomers, "customerName"));
            query.Columns.Add(new SelectColumn("name", tProducts, "productName"));
            query.FromClause.BaseTable = tCustomers;
            query.FromClause.Join(JoinType.Inner, query.FromClause.BaseTable, tOrders, "customerId", "customerId");
            query.FromClause.Join(JoinType.Inner, tOrders, tProducts, "productId", "productId");

            query.OrderByTerms.Add(new OrderByTerm("name", tCustomers, OrderByDirection.Descending));

            int count = RenderRowCount(query);

            RenderPage(0, 2, count, query);
        }
Esempio n. 11
0
        public virtual void Join5()
        {
            FromTerm tCustomers = FromTerm.Table("customers");
            FromTerm tProducts  = FromTerm.Table("products", "p");
            FromTerm tOrders    = FromTerm.Table("orders", "o");

            SelectQuery query = new SelectQuery();

            query.Columns.Add(new SelectColumn("name", tCustomers));
            query.Columns.Add(new SelectColumn("name", tProducts));
            query.FromClause.BaseTable = tCustomers;
            query.FromClause.Join(JoinType.Left, tCustomers, tOrders, new JoinCondition("customerId"), new JoinCondition("customerId"));
            WhereClause condition = new WhereClause(WhereClauseRelationship.Or);

            condition.Terms.Add(WhereTerm.CreateCompare(SqlExpression.Field("productId", tOrders), SqlExpression.Field("productId", tProducts), CompareOperator.Equal));
            condition.Terms.Add(WhereTerm.CreateCompare(SqlExpression.Field("orderId", tOrders), SqlExpression.Field("productId", tProducts), CompareOperator.Equal));
            query.FromClause.Join(JoinType.Left, tOrders, tProducts, condition);

            RenderSelect(query);
        }
Esempio n. 12
0
        public virtual void GroupByWithCube()
        {
            FromTerm tCustomers = FromTerm.Table("customers");
            FromTerm tProducts  = FromTerm.Table("products", "p");
            FromTerm tOrders    = FromTerm.Table("orders", "o");

            SelectQuery query = new SelectQuery();

            query.Columns.Add(new SelectColumn("name", tCustomers));
            query.Columns.Add(new SelectColumn("price", tProducts, "sum", SqlAggregationFunction.Sum));

            query.FromClause.BaseTable = tCustomers;
            query.FromClause.Join(JoinType.Inner, query.FromClause.BaseTable, tOrders, "customerId", "customerId");
            query.FromClause.Join(JoinType.Inner, tOrders, tProducts, "productId", "productId");

            query.GroupByTerms.Add(new GroupByTerm("name", tCustomers));

            query.GroupByWithCube = true;

            RenderSelect(query);
        }
Esempio n. 13
0
        public virtual void Having()
        {
            FromTerm tCustomers = FromTerm.Table("customers");
            FromTerm tProducts  = FromTerm.Table("products", "p");
            FromTerm tOrders    = FromTerm.Table("orders", "o");

            SelectQuery query = new SelectQuery();

            query.Columns.Add(new SelectColumn("name", tCustomers));
            query.Columns.Add(new SelectColumn("price", tProducts, "sum", SqlAggregationFunction.Sum));

            query.FromClause.BaseTable = tCustomers;
            query.FromClause.Join(JoinType.Inner, query.FromClause.BaseTable, tOrders, "customerId", "customerId");
            query.FromClause.Join(JoinType.Inner, tOrders, tProducts, "productId", "productId");

            query.GroupByTerms.Add(new GroupByTerm("name", tCustomers));

            query.HavingPhrase.Terms.Add(WhereTerm.CreateCompare(SqlExpression.Field("name", tCustomers), SqlExpression.String("John"), CompareOperator.Equal));

            RenderSelect(query);
        }
Esempio n. 14
0
        public virtual void Parameter()
        {
            FromTerm tCustomers = FromTerm.Table("customers");

            SelectQuery query = new SelectQuery();

            query.Columns.Add(new SelectColumn("name", tCustomers));
            query.FromClause.BaseTable = tCustomers;
            query.WherePhrase.Terms.Add(WhereTerm.CreateCompare(SqlExpression.Parameter(GetParameterName("pName")), SqlExpression.Field("name", tCustomers), CompareOperator.Equal));

            string sql = Renderer.RenderSelect(query);

            Console.WriteLine(sql);
            if (connection != null)
            {
                IDbCommand command = connection.CreateCommand();
                command.CommandText = sql;
                command.Parameters.Add(CreateParameter("@pName", "John"));
                command.ExecuteNonQuery();
            }
        }
Esempio n. 15
0
        protected override poSelectQuery BuildQuery()
        {
            var selQuery = new poSelectQuery("heItems");

            selQuery.AddColumn("heID", selQuery.BaseTable, "ID");
            selQuery.AddColumn("heCode", selQuery.BaseTable, "heCode");
            selQuery.AddColumn("heName", selQuery.BaseTable, "heName");
            selQuery.AddColumns("heFactoryCode", "heSeasID", "heAMsntID", "heAuxiliaryCode", "heDetailedDescr", "heClassification", "heKind",
                                "heCompID", "heActive", "heNameSoundex", "heRefNumber", "heIaccID", "heProductionCatID", "heBlockSales", "heBlockPurchases", "heBlockWarehouses", "hePartInStockControl"
                                , "heSalInvAttrSpPrice", "hePurInvAttrSpPrice", "heCat01ID", "heCat02ID", "HECALCFROMVALUE",
                                "heRetailPrice", "heWholeSalesPrice");
            selQuery.AddColumns("heSplrID", "heType");

            selQuery.WherePhrase.Terms.Add(WhereTerm.CreateCompare(SqlExpression.Field("heCompID", selQuery.FromClause.BaseTable), selQuery.ParameterValue(AppContext.GetService <heSystemParams>().CurrentCompanyID), CompareOperator.Equal));
            selQuery.WherePhrase.Terms.Add(WhereTerm.CreateCompare(SqlExpression.Field("heType", selQuery.FromClause.BaseTable), selQuery.ParameterValue(Convert.ToInt16(hewItemsDataObjectProxy.ItemTypeEnum.Service)), CompareOperator.Equal));

            selQuery.AddEnumColumn(AppContext, selQuery.FromClause.BaseTable, "Hercules;heItems;heKind");
            selQuery.AddEnumColumn(AppContext, selQuery.FromClause.BaseTable, "Hercules;heItems;heClassification");

            var AMesUnits = FromTerm.Table("heMeasurementUnits", "MU1");

            selQuery.AddColumn("heName", AMesUnits, "AMUNAME");
            selQuery.FromClause.Join(JoinType.Inner, selQuery.BaseTable, AMesUnits, "heAMsntID", "heID");

            var vats = FromTerm.Table("heVATClasses", "Vats");

            selQuery.AddColumn("heName", vats, "VTCLNAME");
            selQuery.FromClause.Join(JoinType.Inner, selQuery.FromClause.BaseTable, vats, "heVtclID", "heID");

            var iaccs = FromTerm.Table("heItemAccCategories", "Iacc");

            selQuery.AddColumn("heName", iaccs, "IaccName");
            selQuery.FromClause.Join(JoinType.Left, selQuery.FromClause.BaseTable, iaccs, "heIaccID", "heID");

            return(selQuery);
        }
Esempio n. 16
0
 internal From(string tableName, string alias, string ns1, string ns2)
 {
     Term = FromTerm.Table(tableName, alias, ns1, ns2);
 }
Esempio n. 17
0
 internal From(string tableName, string alias)
 {
     Term = FromTerm.Table(tableName, alias);
 }
Esempio n. 18
0
 internal From(string tableName)
 {
     Term = FromTerm.Table(tableName);
 }
Esempio n. 19
0
 /// <summary>Аналог конструкции SELECT ... JOIN</summary>
 public Select Join(string rightTableName, JoinCond joinCondition)
 {
     this.Query.FromClause.Join(JoinType.Inner, this.Query.FromClause.BaseTable, FromTerm.Table(rightTableName), joinCondition.Condition);
     return(this);
 }