Inheritance: SqlStatement, IPlSqlStatement
        protected override void BuildStatement(SqlCodeObjectBuilder builder)
        {
            FetchDirection direction;
            if (!TryParseDirection(Direction, out direction))
                throw new InvalidOperationException();

            var statement = new FetchStatement(CursorName, direction);
            if (Into != null)
                statement.IntoReference = ExpressionBuilder.Build(Into);
            if (Position != null)
                statement.PositionExpression = ExpressionBuilder.Build(Position);

            builder.AddObject(statement);
        }
Exemple #2
0
        protected override SqlStatement VisitFetch(FetchStatement statement)
        {
            builder.AppendFormat("FETCH {0}", statement.Direction.ToString().ToUpperInvariant());

            if (statement.OffsetExpression != null)
            {
                builder.AppendFormat(" {0}", statement.OffsetExpression);
            }

            if (!String.IsNullOrEmpty(statement.CursorName))
            {
                builder.AppendFormat(" FROM {0}", statement.CursorName);
            }

            return(base.VisitFetch(statement));
        }
Exemple #3
0
 protected virtual SqlStatement VisitFetch(FetchStatement statement)
 {
     return new FetchStatement(statement.CursorName, statement.Direction, statement.OffsetExpression);
 }
        public void FetchWithOffset()
        {
            var statement = new FetchStatement("c1", FetchDirection.Absolute, SqlExpression.Constant(33));

            SerializeAndAssert(statement, (serialized, deserialized) => {
                Assert.IsNotNull(deserialized);
                Assert.AreEqual("c1", deserialized.CursorName);
                Assert.AreEqual(FetchDirection.Absolute, statement.Direction);
                Assert.IsNotNull(deserialized.OffsetExpression);
            });
        }
        public void FetchWithNoOffset()
        {
            var statement = new FetchStatement("c1", FetchDirection.Next);

            SerializeAndAssert(statement, (serialized, deserialized) => {
                Assert.IsNotNull(deserialized);
                Assert.AreEqual("c1", deserialized.CursorName);
                Assert.AreEqual(FetchDirection.Next, statement.Direction);
            });
        }
        protected override SqlStatement VisitFetch(FetchStatement statement)
        {
            builder.AppendFormat("FETCH {0}", statement.Direction.ToString().ToUpperInvariant());

            if (statement.OffsetExpression != null)
                builder.AppendFormat(" {0}", statement.OffsetExpression);

            if (!String.IsNullOrEmpty(statement.CursorName))
                builder.AppendFormat(" FROM {0}", statement.CursorName);

            return base.VisitFetch(statement);
        }
Exemple #7
0
 protected virtual SqlStatement VisitFetch(FetchStatement statement)
 {
     return(new FetchStatement(statement.CursorName, statement.Direction, statement.OffsetExpression));
 }