Поделиться через


SqlContext Класс

Определение

Представляет абстракцию контекста вызывающего кода, обеспечивающую доступ к объектам SqlPipe, SqlTriggerContext и WindowsIdentity. Этот класс не наследуется.

public ref class SqlContext sealed
public sealed class SqlContext
type SqlContext = class
Public NotInheritable Class SqlContext
Наследование
SqlContext

Примеры

В следующем примере создается новый SqlDataRecord объект и его SqlMetaData. Затем этот пример помечает начало результирующий набор с помощью SendResultsStart метода , отправляет записи с примерами данных обратно клиенту с помощью SendResultsRow метода и помечает конец результирующих наборов методом SendResultsEnd .

[Microsoft.SqlServer.Server.SqlProcedure]
public static void StoredProcReturnResultSet()
{
    // Create the record and specify the metadata for the columns.
    SqlDataRecord record = new SqlDataRecord(
        new SqlMetaData("col1", SqlDbType.NVarChar, 100),
        new SqlMetaData("col2", SqlDbType.Int));

    // Mark the begining of the result-set.
    SqlContext.Pipe.SendResultsStart(record);

    // Send 10 rows back to the client.
    for (int i = 0; i < 10; i++)
    {
        // Set values for each column in the row.
        record.SetString(0, "row " + i.ToString());
        record.SetInt32(1, i);

        // Send the row back to the client.
        SqlContext.Pipe.SendResultsRow(record);
    }

    // Mark the end of the result-set.
    SqlContext.Pipe.SendResultsEnd();
}
<Microsoft.SqlServer.Server.SqlProcedure()> _
Public Shared Sub StoredProcReturnResultSet()

    ' Create the record and specify the metadata for the columns.
    Dim record As New SqlDataRecord( _
        New SqlMetaData("col1", SqlDbType.NVarChar, 100), _
        New SqlMetaData("col2", SqlDbType.Int))

    ' Mark the begining of the result-set.
    SqlContext.Pipe.SendResultsStart(record)

    ' Send 10 rows back to the client.
    Dim i As Integer
    For i = 0 To 9

        ' Set values for each column in the row.
        record.SetString(0, "row " & i.ToString())
        record.SetInt32(1, i)

        ' Send the row back to the client.
        SqlContext.Pipe.SendResultsRow(record)
    Next

    ' Mark the end of the result-set.
    SqlContext.Pipe.SendResultsEnd()
End Sub

Комментарии

Объект SqlContext можно использовать для получения контекста триггера (для кода, выполняемого в триггере) и объекта конвейера (при наличии, например в хранимых процедурах). Его также можно использовать для получения WindowsIdentity объекта , представляющего удостоверение Microsoft Windows вызывающего клиента, если клиент прошел проверку подлинности на сервере с использованием встроенной проверки подлинности.

Свойства

IsAvailable

Показывает, выполняется ли вызывающий код в SQL Server и доступно ли контекстное соединение.

Pipe

Получает объект канала, позволяющий отправлять из вызывающего кода клиенту результирующие наборы, сообщения и результаты выполнения команд.

TriggerContext

Получает контекст триггера, используемый для передачи в вызывающий код сведений о причинах срабатывания триггера и таблицы обновленных столбцов.

WindowsIdentity

Удостоверение Microsoft Windows для вызывающего кода.

Применяется к