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. 只需要一个变量。 在此方案中,将返回具有一个元素的调用 LockOneForReadLockOneForWrite集合。

  2. 需要多个变量。 在此方案中,调用并LockForWrite多次为每个变量调用LockForRead一次。 这会生成两个列表,一个列表包含用于读取的变量,一个列表包含用于写入的变量。 接下来,调用 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) 调用失败时,清除只读列表和读/写列表。

适用于