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
- Наследование
Комментарии
Существует два сценария использования диспенсера переменной.
Требуется только одна переменная. В этом сценарии возвращается вызов LockOneForRead или LockOneForWriteколлекция с одним элементом.
Требуется несколько переменных. В этом сценарии вызов и 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) завершается неудачей. |