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