示例#1
0
        /// <summary>
        /// 构造不包含数据的Sql(即SqlSchema)。
        /// </summary>
        /// <param name="sqls">Sql语句对象集合。</param>
        /// <param name="context">Sql构造的上下文信息。</param>
        public override SqlStatementCollection BuildTableSqlSchema(SqlBuildingContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("SelectSqlBuildStrategy.BuildTableSqlSchema");
            }

            var sqls = new SqlStatementCollection();

            var selectStatement = SQLStatementFactory.CreateSqlStatement(SqlStatementType.Select, context.DbType) as SelectSqlStatement;

            selectStatement.SqlBuildingInfo.DataSource = context.DataSource;

            //Parsing main part of query SQL statement
            BuildMainFrom(selectStatement, context.CommonObject, context.Node, context.DataObject, context.TableName, context);

            //Parsing query fields list
            BuildQueryFieldList(selectStatement, context.Node, context.DataObject);

            //Parsing inner join clause
            BuildMainInnerJoin(selectStatement, context);

            sqls.Add(selectStatement);
            sqls.ShardingInfo = context.RouteInfo;

            return(sqls);
        }
示例#2
0
        /// <summary>
        /// 构造不包含数据的Sql(即SqlSchema)。
        /// </summary>
        /// <param name="sqls">Sql语句对象集合。</param>
        /// <param name="context">Sql构造的上下文信息。</param>
        public override SqlStatementCollection BuildTableSqlSchema(SqlBuildingContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("UpdateSqlBuildStrategy.BuildTableSqlSchema");
            }

            var sqls = new SqlStatementCollection();

            var updateStatement = SQLStatementFactory.CreateSqlStatement(SqlStatementType.Update, context.DbType) as UpdateSqlStatement;

            updateStatement.SqlBuildingInfo.DataSource = context.DataSource;

            base.HandlingSqlStatement(updateStatement, context);
            sqls.Add(updateStatement);

            return(sqls);
        }
        /// <summary>
        /// 构造不包含数据的Sql(即SqlSchema)。
        /// </summary>
        /// <param name="sqls">Sql语句对象集合。</param>
        /// <param name="context">Sql构造的上下文信息。</param>
        public override SqlStatementCollection BuildTableSqlSchema(SqlBuildingContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("InsertSqlBuilder.BuildTableSqlSchema");
            }

            var sqls = new SqlStatementCollection();

            var insertStatement = SQLStatementFactory.CreateSqlStatement(SqlStatementType.Insert, context.DbType) as InsertSqlStatement;

            base.HandlingSqlStatement(insertStatement, context);
            HandlingInsertFields(insertStatement, context);
            insertStatement.SqlBuildingInfo.DataSource = context.DataSource;

            sqls.Add(insertStatement);

            return(sqls);
        }
        /// <summary>
        /// 构造不包含数据的Sql(即SqlSchema)。
        /// </summary>
        /// <param name="sqls">Sql语句对象集合。</param>
        /// <param name="context">Sql构造的上下文信息。</param>
        public override SqlStatementCollection BuildTableSqlSchema(SqlBuildingContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("DeleteSqlBuildStrategy.BuildTableSqlSchema");
            }

            var sqls = new SqlStatementCollection();

            //构造DeleteSql
            var sql = SQLStatementFactory.CreateSqlStatement(SqlStatementType.Delete, context.DbType) as DeleteSqlStatement;

            base.HandlingSqlStatement(sql, context);

            //构造DeleteSql的删除过滤条件
            this.HandlingJoin(sql, context);
            sqls.Add(sql);

            return(sqls);
        }