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); }
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)); }
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); }
protected virtual SqlStatement VisitFetch(FetchStatement statement) { return(new FetchStatement(statement.CursorName, statement.Direction, statement.OffsetExpression)); }