Udostępnij za pośrednictwem


SqlContext Klasa

Definicja

Reprezentuje abstrakcję kontekstu obiektu wywołującego, który zapewnia dostęp do SqlPipeobiektów , SqlTriggerContexti WindowsIdentity . Klasa ta nie może być dziedziczona.

public ref class SqlContext sealed
public sealed class SqlContext
type SqlContext = class
Public NotInheritable Class SqlContext
Dziedziczenie
SqlContext

Przykłady

Poniższy przykład tworzy nowy SqlDataRecord i jego element SqlMetaData. W tym przykładzie oznacza się początek zestawu wyników przy użyciu SendResultsStart metody , wysyła rekordy z przykładowymi danymi z powrotem do klienta przy użyciu metody i oznacza koniec zestawu SendResultsEnd wyników za pomocą SendResultsRow metody .

[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

Uwagi

Obiekt SqlContext może służyć do uzyskiwania kontekstu wyzwalacza (do wykonywania kodu w wyzwalaczu) i obiektu potoku (jeśli jest dostępny, na przykład w procedurach składowanych). Można go również użyć do uzyskania WindowsIdentity obiektu reprezentującego tożsamość systemu Microsoft Windows klienta wywołującego, jeśli klient uwierzytelniony na serwerze przy użyciu zintegrowanego uwierzytelniania.

Właściwości

IsAvailable

Określa, czy kod wywołujący jest uruchomiony w SQL Server, a jeśli można uzyskać dostęp do połączenia kontekstowego.

Pipe

Pobiera obiekt potoku, który umożliwia obiektowi wywołującemu wysyłanie zestawów wyników, komunikatów i wyników wykonywania poleceń z powrotem do klienta.

TriggerContext

Pobiera kontekst wyzwalacza używany do udostępniania obiektowi wywołującego informacji o tym, co spowodowało wyzwolenie wyzwalacza, oraz mapę kolumn, które zostały zaktualizowane.

WindowsIdentity

Tożsamość elementu wywołującego w systemie Microsoft Windows.

Dotyczy