Partager via


SqlContext Classe

Définition

Représente une abstraction du contexte de l'appelant, qui fournit l'accès aux objets SqlPipe, SqlTriggerContext et WindowsIdentity. Cette classe ne peut pas être héritée.

public ref class SqlContext sealed
public sealed class SqlContext
type SqlContext = class
Public NotInheritable Class SqlContext
Héritage
SqlContext

Exemples

L’exemple suivant crée un nouveau SqlDataRecord et son SqlMetaData. L’exemple marque ensuite le début d’un jeu de résultats à l’aide de la SendResultsStart méthode, renvoie les enregistrements contenant des exemples de données au client à l’aide de la SendResultsRow méthode et marque la fin du jeu de résultats avec la SendResultsEnd méthode .

[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

Remarques

L’objet SqlContext peut être utilisé pour obtenir le contexte du déclencheur (pour le code s’exécutant dans un déclencheur) et l’objet de canal (lorsqu’il est disponible, par exemple dans les procédures stockées). Il peut également être utilisé pour obtenir un WindowsIdentity objet qui représente l’identité Microsoft Windows du client appelant, si le client s’est authentifié auprès du serveur à l’aide de l’authentification intégrée.

Propriétés

IsAvailable

Spécifie si le code appelant s'exécute au sein de SQL Server et si la "context connection" est accessible.

Pipe

Obtient l'objet de canal qui permet à l'appelant d'envoyer des jeux de résultats, des messages et les résultats de l'exécution de commandes vers le client.

TriggerContext

Obtient le contexte de déclencheur permettant de fournir à l'appelant des informations concernant ce qui a activé le déclencheur, ainsi qu'un mappage des colonnes qui ont été mises à jour.

WindowsIdentity

Identité Microsoft Windows de l'appelant.

S’applique à