Share via


VariableDispenser クラス

パッケージの実行中に、Variables コレクションにアクセスします。このクラスは継承できません。

名前空間:  Microsoft.SqlServer.Dts.Runtime
アセンブリ:  Microsoft.SqlServer.ManagedDTS (Microsoft.SqlServer.ManagedDTS.dll)

構文

'宣言
Public NotInheritable Class VariableDispenser _
    Inherits DtsObject
'使用
Dim instance As VariableDispenser
public sealed class VariableDispenser : DtsObject
public ref class VariableDispenser sealed : public DtsObject
[<SealedAttribute>]
type VariableDispenser =  
    class
        inherit DtsObject
    end
public final class VariableDispenser extends DtsObject

説明

変数ディスペンサを使用するシナリオが 2 つあります。

  1. 必要な変数が 1 つだけの場合。このシナリオでは、LockOneForRead または LockOneForWrite を呼び出すと、1 つの要素を持つコレクションが返されます。

  2. 必要な変数が複数ある場合。このシナリオでは、LockForRead および LockForWrite を各変数に対して 1 回ずつ、複数回呼び出します。これによって、2 つの一覧が作成されます。1 つは読み取り用の変数を含む一覧で、もう 1 つは書き込み用の変数の一覧です。次に、ロックされた変数をすべて含むコレクションを提供する GetVariables を呼び出します。GetVariables が成功した場合、実際のロックではなく変数名の一覧である 2 つの一覧は、クリアされます。

ロックを明示的に解除するには、コレクションで Unlock を呼び出します。このメソッドによって、変数自体のロックが解除されます。GetVariables が失敗した場合、一覧は変更されず、GetVariables を再度呼び出すことができます。それでも正常に変数を取得できない場合は、Reset を呼び出して一覧をクリアし、変数ディスペンサを初期状態に戻します。

Variables コレクションには、Locked プロパティが含まれています。このプロパティは、ディスペンサで管理されている変数のコレクションについて、ロックされている (true) かロックが解除されている (false) かを示します。このプロパティを確認する理由は、一部のタスクでは使用する変数のロックが明示的に解放され、Unlock を 2 度呼び出すとエラーがスローされるためです。したがって、Unlock を呼び出す前に、このプロパティを使用して、ディスペンサで管理されているコレクションがロックされているかどうかを確認してください。

重要な注意事項重要

VariableDispenser は Runtime クラスで使用します。データ フロー コンポーネント (Microsoft.SqlServer.Dts.Pipeline) を使用している場合は、代わりに IDTSVariableDispenser100 を使用する必要がある可能性があります。使用する変数ディスペンサを調べるには、変数を取得するオブジェクトのドキュメントを参照し、メソッドの戻りオブジェクトを確認します。

継承階層

System. . :: . .Object
  Microsoft.SqlServer.Dts.Runtime. . :: . .DtsObject
    Microsoft.SqlServer.Dts.Runtime..::..VariableDispenser

スレッド セーフ

この型の public static (Visual Basic では Shared) のメンバーはすべて、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。