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 для вызывающего кода. |