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. 你需要多个变量。 在这种情况下,调用 LockForReadLockForWrite 多次,每个变量一次。 这会构建两个列表,一个包含用于读取的变量,另一个包含用于写入的变量。 接着调用 GetVariables,给出包含所有锁定变量的集合。 如果 GetVariables 成功,这两个列表(变量名列表,而非实际锁)将被清除。

要明确释放锁具,请联系 Unlock 催收部门。 这种方法解锁了变量本身。 如果 GetVariables 失败,名单保持不变,你可以再次打电话 GetVariables 。 如果仍未能获得变量,请呼叫 Reset 清除列表,将变量分配器恢复到初始状态。

Variables 集合包含 Locked 一个属性,指示变量分配器变量集合是锁定true()还是解锁(false)。 之所以要审查这个属性,是因为有些任务会明确释放它们所用变量的锁, Unlock 调用两次会报错。 因此,你应利用该属性判断发放的集合是否被锁定,再调用 Unlock

Important

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) ,清除只读列表和读写列表。

适用于