//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // // alazela // billin //------------------------------------------------------------------------------ namespace System.Data.SqlClient { using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using Microsoft.SqlServer.Server; // simple storage to contain objects that must be generated prior to sending data, but // that we cannot re-generate at the time of sending the data. The entire purpose is // to avoid long, complicated parameter lists that take every possible set of values. // Instead, a single peekahead object is passed in, encapsulating whatever sets are needed. // // Example: // When processing IEnumerable, we need to obtain the enumerator and // the first record during metadata generation (metadata is stored in the first record), // but to properly stream the value, we can't ask the IEnumerable for these objects again // when it's time to send the actual values. internal class ParameterPeekAheadValue { // Peekahead for IEnumerable internal IEnumerator Enumerator; internal SqlDataRecord FirstRecord; } }