Compartir a través de


SqlContext Clase

Definición

Representa una abstracción del contexto del llamador, que proporciona acceso a los objetos SqlPipe, SqlTriggerContext y WindowsIdentity. Esta clase no puede heredarse.

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

Ejemplos

En el ejemplo siguiente se crea un nuevo SqlDataRecord objeto y su SqlMetaData. A continuación, el ejemplo marca el principio de un conjunto de resultados mediante el SendResultsStart método , envía registros con datos de ejemplo al cliente mediante el SendResultsRow método y marca el final del conjunto de resultados con el SendResultsEnd método .

[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

Comentarios

El SqlContext objeto se puede usar para obtener el contexto del desencadenador (para el código que se ejecuta en un desencadenador) y el objeto de canalización (cuando está disponible, como en procedimientos almacenados). También se puede usar para obtener un WindowsIdentity objeto que represente la identidad de Microsoft Windows del cliente que realiza la llamada, si el cliente se autentica con el servidor mediante la autenticación integrada.

Propiedades

IsAvailable

Especifica si el código de llamada se ejecuta en SQL Server y si se puede tener acceso a la conexión de contexto.

Pipe

Obtiene el objeto de canalización que permite al llamador devolver al cliente los conjuntos de resultados, mensajes y los resultados de la ejecución de comandos.

TriggerContext

Obtiene el contexto del activador para proporcionarle al llamador información sobre la causa del desencadenamiento del activador y un mapa de las columnas actualizadas.

WindowsIdentity

Identidad en Microsoft Windows del llamador.

Se aplica a