SqlContext Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine Abstraktion des Aufruferkontextes dar, die Zugriff auf das SqlPipe-Objekt, das SqlTriggerContext-Objekt und das WindowsIdentity-Objekt bereitstellt. Diese Klasse kann nicht vererbt werden.
public ref class SqlContext sealed
public sealed class SqlContext
type SqlContext = class
Public NotInheritable Class SqlContext
- Vererbung
-
SqlContext
Beispiele
Im folgenden Beispiel wird ein neues SqlDataRecord und dessen SqlMetaDataerstellt. Das Beispiel markiert dann den Anfang eines Resultsets mithilfe der SendResultsStart -Methode, sendet Datensätze mit Beispieldaten mithilfe der -Methode zurück an den SendResultsRow Client und markiert das Ende des Resultsets mit der SendResultsEnd -Methode.
[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
Hinweise
Das SqlContext -Objekt kann verwendet werden, um den Triggerkontext (für Code, der in einem Trigger ausgeführt wird) und das Pipeobjekt (sofern verfügbar, z. B. in gespeicherten Prozeduren) abzurufen. Es kann auch verwendet werden, um ein WindowsIdentity Objekt abzurufen, das die Microsoft Windows-Identität des aufrufenden Clients darstellt, wenn sich der Client mit integrierter Authentifizierung beim Server authentifiziert hat.
Eigenschaften
IsAvailable |
Gibt an, ob der aufrufende Code in SQL Server ausgeführt wird und ob auf die Kontextverbindung zugegriffen werden kann. |
Pipe |
Ruft das Pipe-Objekt ab, das dem Aufrufer das Senden von Resultsets, Meldungen und Ergebnissen der Ausführung von Befehlen zurück an den Client ermöglicht. |
TriggerContext |
Ruft den Triggerkontext ab, mit dem dem Aufrufer Informationen über den Auslöser des Triggers und eine Zuordnung der aktualisierten Spalten bereitgestellt werden. |
WindowsIdentity |
Die Microsoft Windows-Identität des Aufrufers. |