Beispiel #1
0
        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);
            });
        }
Beispiel #2
0
        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);
            });
        }
Beispiel #3
0
        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);
        }
 internal string Format(Expression expression)
 {
     this.stmt = new FetchStatement();
     this.Visit(expression);
     return this.stmt.ToString();
 }