VariableDispenser Класс

Определение

Получает доступ к Variables коллекции во время выполнения пакета. Этот класс не наследуется.

public ref class VariableDispenser sealed : Microsoft::SqlServer::Dts::Runtime::DtsObject
public sealed class VariableDispenser : Microsoft.SqlServer.Dts.Runtime.DtsObject
type VariableDispenser = class
    inherit DtsObject
Public NotInheritable Class VariableDispenser
Inherits DtsObject
Наследование
VariableDispenser

Комментарии

Существует два сценария использования переменного диспенсера.

  1. Вам нужна только одна переменная. В этом случае вызов LockOneForRead или LockOneForWrite, и возвращается коллекция с одним элементом.

  2. Вам нужны несколько переменных. В этом сценарии вызов LockForRead и LockForWrite несколько раз по одному для каждой переменной. Это формирует два списка: один с переменными для чтения и другой список с переменными для записи. Далее вызов GetVariables, который даёт коллекцию с заблокированными переменными. Если GetVariables успешно, оба списка, которые являются списками имен переменных, а не фактическими блокировками, очищаются.

Чтобы открыто освободить замки, обратиться Unlock в коллекцию. Этот метод открывает сами переменные. Если GetVariables не получится, списки остаются без изменений, и вы можете позвонить GetVariables снова. Если вам всё равно не удаётся получить переменные, позвоните Reset , чтобы очистить списки и вернуть диспенсер переменных в исходное состояние.

Коллекция Variables содержит Locked свойство, указывающее, является ли набор переменных диспенсеров заблокирован (true) или разблокирован (false). Причина для рассмотрения этого свойства в том, что некоторые задачи явно освобождают блокировки на используемые переменные, и дважды вызов Unlock приводит к ошибке. Поэтому следует использовать это свойство, чтобы определить, заблокирована ли выдаваемая коллекция, прежде чем звонить Unlock.

Important

Используется VariableDispenser с классами Runtime. Если вы используете компоненты потока данных (Microsoft.SqlServer.Dts.Pipeline), то, возможно, вам потребуется использовать IDTSVariableDispenser100 компоненты вместо них. Чтобы узнать, какой диспенсер переменных использовать, ознакомьтесь с документацией объекта, на котором вы получаете переменные, и проверьте объект возврата метода.

Методы

Имя Описание
Contains(String)

Указывает, можно ли получить элемент из VariableDispenser коллекции с помощью индексации без исключения.

Equals(Object)

Определяет, равны ли два экземпляра объекта.

(Унаследовано от DtsObject)
GetHashCode()

Возвращает хэш-код для этого экземпляра.

(Унаследовано от DtsObject)
GetQualifiedName(String)

Возвращает квалифицированное имя переменной.

GetVariables(Variables)

Блокирует переменные, которые находятся в списке только для чтения и списка чтения/записи.

LockForRead(String)

Добавляет переменную в список переменных, которые должны быть заблокированы для доступа только для чтения.

LockForWrite(String)

Добавляет переменную в список переменных, которые должны быть заблокированы для доступа к чтению/записи.

LockOneForRead(String, Variables)

Помещает переменную в список и блокирует её для доступа только для чтения.

LockOneForWrite(String, Variables)

Помещает переменную в список и блокирует её для доступа к чтению/записи.

Reset()

Очищает как список только для чтения, так и список для чтения/записи, когда вызов GetVariables(Variables) не выполняется.

Применяется к