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 .

Важно!

VariableDispenserИспользуется со классами среды выполнения. При использовании компонентов потока данных ( 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) завершается неудачей.

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