Поделиться через


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. Требуется несколько переменных. В этом сценарии вызов и LockForReadLockForWrite несколько раз по одному для каждой переменной. Это создает два списка: один список, содержащий переменные для чтения, и один список, содержащий переменные для записи. Затем вызов 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) завершается неудачей.

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