public override string ToString()
        {
            if (this._operands == null)
                this._sqlClause = SqlClause.None;

            return base.ToString();
        }
Example #2
0
        public void GetParameters_ToEmptyClause_ReturnsCorrectParametersList()
        {
            // arrange
            var sut = new SqlClause();

            var parameter = new SqlParameter {
                ParameterName = "@test"
            };


            // act
            sut.Add("a", parameter);

            var result = sut.GetParameters();


            // arrange
            result.Should().Equal(parameter);
        }
        public void AddPredicate_ByDefault_AddsSqlAndParameters()
        {
            // arrange
            var sut       = new SqlClause();
            var parameter = new SqlParameter {
                ParameterName = "@x"
            };


            // act
            sut.AddPredicate("Id", " ? ", parameter);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be("Id ? @x");
            parameters.Should().Equal(parameter);
        }
Example #4
0
        public void ToString_WithPrefix_WithSuffix_WithSeparator_TwoExpressions_ReturnsCorrectSql()
        {
            // arrange
            var sut = new SqlClause();

            sut.Prefix = "prefix ";
            sut.ExpressionsSeparator = " and ";
            sut.Suffix = " suffix";
            sut.Add("a");
            sut.Add("b");


            // act
            var result = sut.ToString();


            // arrange
            result.Should().Be("prefix a and b suffix");
        }
        public void AddGreaterOrEquals_ByDefault_AddsCorrectPredicate()
        {
            // arrange
            var sut       = new SqlClause();
            var parameter = new SqlParameter {
                ParameterName = "@x"
            };


            // act
            sut.AddGreaterOrEquals("Id", parameter);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be("Id >= @x");
            parameters.Should().Equal(parameter);
        }
Example #6
0
        public void WithKey_HasExpressionWithTheSameKey_ByDefault_AddsNothing()
        {
            // arrange
            var sut = new SqlClause();

            sut.Add("key", "a");

            var clause = new SqlClause();

            clause.Add("b");


            // act
            sut.Add("key", clause);
            var result = sut.GetSql();


            // arrange
            result.Should().Be("a");
        }
Example #7
0
        public void WithKey_HasExpressionWithTheSameKey_WithOverwrite_OverwritesTheExpression()
        {
            // arrange
            var sut = new SqlClause();

            sut.Add("key", "a");

            var clause = new SqlClause();

            clause.Add("b");


            // act
            sut.Add("key", clause, overwrite: true);
            var result = sut.GetSql();


            // arrange
            result.Should().Be("b");
        }
Example #8
0
        public void ToString_WithParameter_ReplacesParameterWithItsValue(object value, Type type, string expected)
        {
            // arrange
            if (value != null)
            {
                value = Convert.ChangeType(value, type);
            }

            var sut = new SqlClause();

            sut.Add("@p", new SqlParameter("@p", value));


            // act
            var result = sut.ToString();


            // arrange
            result.Should().Be(expected);
        }
Example #9
0
        public void ToNotEmptyClause_AddingNotEmptyClause_ReturnsCorrectSql()
        {
            // arrange
            var sut = new SqlClause();

            sut.Add("a");

            var clause = new SqlClause();

            clause.Add("b");


            // act
            sut.Add(clause);
            var result = sut.GetSql();


            // arrange
            result.Should().Be("ab");
        }
Example #10
0
        public void GetSql_WithKey_HasExpressionWithTheSameKey_WithOverwrite_OverwritesTheExpression()
        {
            // arrange
            var sut = new SqlClause();

            sut.Add("key", "a");

            var parameter = new SqlParameter {
                ParameterName = "@test"
            };


            // act
            sut.Add("key", "b", parameter, overwrite: true);

            var result = sut.GetSql();


            // arrange
            result.Should().Be("b");
        }
Example #11
0
        public void GetParameters_WithKey_HasExpressionWithTheSameKey_ByDefault_AddsNothing()
        {
            // arrange
            var sut = new SqlClause();

            sut.Add("key", "a");

            var parameter = new SqlParameter {
                ParameterName = "@test"
            };


            // act
            sut.Add("key", "b", parameter);

            var result = sut.GetParameters();


            // arrange
            result.Should().BeEmpty();
        }
Example #12
0
        public void GetParameters_WithKey_HasParameterWithTheSameKey_WithOverwrite_OverwritesTheParameter()
        {
            // arrange
            var sut = new SqlClause();

            sut.Add("key", "a");

            var parameter = new SqlParameter {
                ParameterName = "@test"
            };


            // act
            sut.Add("key", "b", parameter, overwrite: true);

            var result = sut.GetParameters();


            // arrange
            result.Should().Equal(parameter);
        }
        public void AddNotBetween_ByDefault_AddsCorrectPredicate()
        {
            // arrange
            var sut       = new SqlClause();
            var parameter = new SqlParameter {
                ParameterName = "@x"
            };
            var parameter2 = new SqlParameter {
                ParameterName = "@x2"
            };


            // act
            sut.AddNotBetween("Id", parameter, parameter2);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be("Id not between @x and @x2");
            parameters.Should().Equal(parameter, parameter2);
        }
        public void AddNotIn_TwoParameters_AddsCorrectPredicate()
        {
            // arrange
            var sut       = new SqlClause();
            var parameter = new SqlParameter {
                ParameterName = "@x"
            };
            var parameter2 = new SqlParameter {
                ParameterName = "@x2"
            };


            // act
            sut.AddNotIn("Id", parameter, parameter2);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be("Id not in (@x, @x2)");
            parameters.Should().Equal(parameter, parameter2);
        }
        public void AddNotExists_WhereClause_AddsCorrectPredicate()
        {
            // arrange
            var sut       = SqlClauseBuilder.Where();
            var parameter = new SqlParameter {
                ParameterName = "@x"
            };

            var clause = new SqlClause("select * from Table2");

            clause.Add(parameter);


            // act
            sut.AddNotExists(clause);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().BeEquivalentToSql("where (not exists (select * from Table2))");
            parameters.Should().Equal(parameter);
        }
Example #16
0
        public void ToEmptyClause_AddingNotEmptyClause_ReturnsCorrectParametersList()
        {
            // arrange
            var sut = new SqlClause();


            var parameter = new SqlParameter {
                ParameterName = "@name"
            };

            var clause = new SqlClause();

            clause.Add(parameter);


            // act
            sut.Add(clause);
            var result = sut.GetParameters();


            // arrange
            result.Should().Equal(parameter);
        }
        public void AddNotExists_ByDefault_AddsCorrectPredicate()
        {
            // arrange
            var sut       = new SqlClause();
            var parameter = new SqlParameter {
                ParameterName = "@x"
            };

            var clause = new SqlClause("select * from Table2");

            clause.Add(parameter);


            // act
            sut.AddNotExists(clause);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be("not exists (select * from Table2)");
            parameters.Should().Equal(parameter);
        }
Example #18
0
 public AbstractBsDch客室利用台帳CQ(ConditionQuery childQuery, SqlClause sqlClause, String aliasName, int nestLevel)
     : base(childQuery, sqlClause, aliasName, nestLevel)
 {
 }
 // ===============================================================================
 //                                                                     Constructor
 //                                                                     ===========
 public SimplePagingBean()
 {
     _sqlClause = new SqlClausePostgreSql("dummy");
 }
Example #20
0
 public BsDmyプロシージャCQ(ConditionQuery childQuery, SqlClause sqlClause, String aliasName, int nestLevel)
     : base(childQuery, sqlClause, aliasName, nestLevel)
 {
 }
        // ===============================================================================
        //                                                                     Constructor
        //                                                                     ===========
        public AbstractConditionBean()
        {
            DBMeta dbmeta = DBMetaInstanceHandler.FindDBMeta(TableDbName);

            _sqlClause = new SqlClausePostgreSql(dbmeta.TableSqlName);
        }
 protected virtual Dch客室利用台帳CQ xcreateCQ(ConditionQuery childQuery, SqlClause sqlClause, String aliasName, int nestLevel) {
     return new Dch客室利用台帳CQ(childQuery, sqlClause, aliasName, nestLevel);
 }
 public BsKbn客室利用区分CQ(ConditionQuery childQuery, SqlClause sqlClause, String aliasName, int nestLevel)
     : base(childQuery, sqlClause, aliasName, nestLevel)
 {
 }
Example #24
0
 public static ClauseOperand Clause(SqlClause sqlClause)
 {
     return(new ClauseOperand(sqlClause));
 }
 protected virtual DmyプロシージャCQ xcreateCQ(ConditionQuery childQuery, SqlClause sqlClause, String aliasName, int nestLevel)
 {
     return(new DmyプロシージャCQ(childQuery, sqlClause, aliasName, nestLevel));
 }
Example #26
0
 public BsDch従業員職位履歴台帳CQ(ConditionQuery childQuery, SqlClause sqlClause, String aliasName, int nestLevel)
     : base(childQuery, sqlClause, aliasName, nestLevel)
 {
 }
Example #27
0
 public string GetQuery(SqlClause clause)
 {
     return QuerySql;
 }
 protected virtual Mst客室タイプマスタCQ xcreateCQ(ConditionQuery childQuery, SqlClause sqlClause, String aliasName, int nestLevel)
 {
     return(new Mst客室タイプマスタCQ(childQuery, sqlClause, aliasName, nestLevel));
 }
Example #29
0
        /// <summary>
        /// Return the SQL for this query
        /// </summary>
        /// <returns></returns>
        public string GetQuery(SqlClause clause)
        {
            //if (String.IsNullOrEmpty(PrimaryKey) || String.IsNullOrEmpty(TableName)) {
            //    throw new InvalidOperationException("Missing primary key or table name.");
                //}

                SqlClause required;
                switch (QueryType)
                {
                    case QueryType.Select:
                        // special case for select: nothing is required, so we can extract parts
                         required = SqlClause.Select ;
                         RequireClauses(required);

                         /// <summary>
                         /// This may not actually create a query that is valid SQL in every (or even any) language. The SQL output from the IQuery/
                         /// ISqlQueryMaker object is not intended to be used directly by a SQL engine, rather, it is supposed to generate a unique
                         /// query for each distict conceptual query, and provide component parts that a DataStorageController can use to map to a
                         /// particular engine's implementation.
                         /// </summary>
                         ///
                        return String.Format("{0}{1}{2}{3}{4}{5}{6}",
                            (clause.HasFlag(SqlClause.Select)) ?
                                "SELECT " + Select :
                                "",
                             (clause.HasFlag(SqlClause.From) && !String.IsNullOrEmpty(From)) ?
                                " FROM " + From : "",
                            (clause.HasFlag(SqlClause.Where) && !Where.IsEmpty) ?
                                " WHERE " + Where : "",
                            (clause.HasFlag(SqlClause.GroupBy) && !String.IsNullOrEmpty(GroupBy)) ?
                                " GROUP BY " + GroupBy : "",
                           (clause.HasFlag(SqlClause.Having) && !String.IsNullOrEmpty(Having)) ?
                                " HAVING " + Having : "",
                            (clause.HasFlag(SqlClause.OrderBy) && !OrderBy.IsEmpty) ?
                                " ORDER BY " + OrderBy : "",
                            (clause.HasFlag(SqlClause.Limit) && (TotalRows>0 || FirstRow>0)) ?
                                (" LIMIT " + FirstRow+"," + TotalRows) : ""
                                ).Trim();

                    case QueryType.Delete:
                        required = SqlClause.Table | SqlClause.Where;
                        RequireClauses(required);
                        return String.Format("DELETE FROM {0} WHERE {1}",
                            TableName,
                            Where);
                    case QueryType.Update:
                        required = SqlClause.Table | SqlClause.Where | SqlClause.UpdateSet;
                        RequireClauses(required);
                        // TODO: From queries
                        return String.Format("UPDATE {0} SET {1} WHERE {2}",
                            TableName,
                            UpdateSet,
                            Where);
                    case QueryType.Insert:
                        RequireClauses(SqlClause.Table | SqlClause.InsertFields);
                        return String.Format("INSERT INTO {0} {1} VALUES {2}",
                            TableName,
                            InsertFields,
                            InsertValues);
                    default:
                        throw new InvalidOperationException("Unsupported query type.");
                }
        }
Example #30
0
        protected void RequireClauses(SqlClause clause)
        {
            var err = new Func<string>(() =>
            {
                return " is required for an " + QueryType.ToString() + " query.";
            });

            if (clause.HasFlag(SqlClause.Table) && String.IsNullOrEmpty(TableName))
            {
                throw new IQException("TableName" + err());
            }
            if (clause.HasFlag(SqlClause.Select) && String.IsNullOrEmpty(Select))
            {
                throw new IQException("A SELECT clause" + err());
            }
            if (clause.HasFlag(SqlClause.From) && String.IsNullOrEmpty(From))
            {
                throw new IQException("A FROM clause" + err());
            }
            if (clause.HasFlag(SqlClause.Where) && Where.IsEmpty)
            {
                throw new IQException("A WHERE clause" + err());
            }
            if (clause.HasFlag(SqlClause.UpdateSet) && String.IsNullOrEmpty(UpdateSet))
            {
                throw new IQException("TableName" + err());
            }
            if (clause.HasFlag(SqlClause.InsertFields) && String.IsNullOrEmpty(InsertFields))
            {
                throw new IQException("TableName" + err());
            }
        }
Example #31
0
 public static ClauseOperand Clause(SqlClause sqlClause)
 {
     return new ClauseOperand(sqlClause);
 }
Example #32
0
 public AbstractBsMst客室タイプマスタCQ(ConditionQuery childQuery, SqlClause sqlClause, String aliasName, int nestLevel)
     : base(childQuery, sqlClause, aliasName, nestLevel)
 {
 }
 public ClauseOperand(SqlClause sqlClause)
 {
     this._sqlClause = sqlClause;
 }
Example #34
0
 public ClauseOperand(SqlClause sqlClause)
 {
     this._sqlClause = sqlClause;
 }
Example #35
0
 // ===============================================================================
 //                                                                     Constructor
 //                                                                     ===========
 // You should NOT touch with this constructor.
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="childQuery">Child query as interface. (NullAllowed: If null, this is base instance.)</param>
 /// <param name="sqlClause">SQL clause instance. (NotNull)</param>
 /// <param name="aliasName">My alias name. (NotNull)</param>
 /// <param name="nestLevel">Nest level.</param>
 public Mst権限マスタCQ(ConditionQuery childQuery, SqlClause sqlClause, String aliasName, int nestLevel)
     : base(childQuery, sqlClause, aliasName, nestLevel)
 {
 }
Example #36
0
 // ===============================================================================
 //                                                                     Constructor
 //                                                                     ===========
 public DmyプロシージャCIQ(ConditionQuery childQuery, SqlClause sqlClause, String aliasName, int nestLevel, BsDmyプロシージャCQ myCQ)
     : base(childQuery, sqlClause, aliasName, nestLevel) {
     _myCQ = myCQ;
     _foreignPropertyName = _myCQ.xgetForeignPropertyName();// Accept foreign property name.
     _relationPath = _myCQ.xgetRelationPath();// Accept relation path.
 }