スクリプト コンポーネントでのデータ ソースへの接続
接続マネージャは、便宜上、特定の種類のデータ ソースに接続するために必要な情報をカプセル化して格納するユニットです。詳細については、「Integration Services の接続」を参照してください。
既存の接続マネージャを、変換元または変換先コンポーネントのカスタム スクリプトでアクセスできるようにするには、[スクリプト変換エディタ] の [接続マネージャ] ページで、[追加] および [削除] ボタンをクリックします。ただし、データの読み込みや保存、場合によってはデータ ソースとの接続や切断を行うためには、独自のカスタム コードを記述する必要があります。[スクリプト変換エディタ] の [接続マネージャ] ページの詳細については、「スクリプト コンポーネント エディタでのスクリプト コンポーネントの構成」および「[スクリプト変換エディタ] ([接続マネージャ] ページ)」を参照してください。
スクリプト コンポーネントは、ComponentWrapper プロジェクト アイテム内に Connections コレクション クラスを作成します。ここには、各接続マネージャに対して、接続マネージャ自体と同じ名前を持つ、厳密に型指定されたアクセサ プロパティが含まれています。このコレクションは、ScriptMain クラスの Connections プロパティを介して公開されます。アクセサ プロパティは、接続マネージャへの参照を IDTSConnectionManager100 のインスタンスとして返します。たとえば、ダイアログ ボックスの [接続マネージャ] ページで MyADONETConnection という名前の接続マネージャを追加した場合、次のコードを追加することで、スクリプト内のその接続マネージャへの参照を取得できます。
Dim myADONETConnectionManager As IDTSConnectionManager100 = _
Me.Connections.MyADONETConnection
注意 |
---|
AcquireConnection を呼び出す前に、接続マネージャによって返される接続のデータ型を知っておく必要があります。スクリプト タスクでは Option Strict が有効なので、Object 型として返される接続は、使用する前に適切なデータ型にキャストする必要があります。 |
次に、特定の接続マネージャの AcquireConnection メソッドを呼び出して、基になる接続、またはデータ ソースへの接続に必要な情報を取得します。たとえば、次のコードを使用すると、ADO.NET 接続マネージャによってラップされた System.Data.SqlConnection への参照を取得できます。
Dim myADOConnection As SqlConnection = _
CType(MyADONETConnectionManager.AcquireConnection(Nothing), SqlConnection)
これに対し、同じ呼び出しをフラット ファイル接続マネージャに対して行った場合、ファイル データ ソースのパスとファイル名のみが返されます。
Dim myFlatFile As String = _
CType(MyFlatFileConnectionManager.AcquireConnection(Nothing), String)
フラット ファイルからデータを読み取る、またはそのファイルにデータを書き込むためには、このパスとファイル名を、System.IO.StreamReader または Streamwriter に渡す必要があります。
重要 |
---|
スクリプト コンポーネントでマネージ コードを記述する場合、OLE DB 接続マネージャや Excel 接続マネージャなど、アンマネージ オブジェクトを返す接続マネージャの AcquireConnection メソッドを呼び出すことはできません。ただし、これらの接続マネージャの ConnectionString プロパティを読み取り、System.Data.OleDb 名前空間の OLEDB connection の接続文字列を使用することにより、コード内でデータ ソースに直接接続することができます。 アンマネージ オブジェクトを返す接続マネージャの AcquireConnection メソッドを呼び出す必要がある場合は、ADO.NET 接続マネージャを使用してください。OLE DB プロバイダを使用するように ADO.NET 接続マネージャを設定すると、接続には .NET Framework Data Provider for OLE DB が使用されます。この場合、AcquireConnection メソッドは、アンマネージ オブジェクトではなく System.Data.OleDb.OleDbConnection を返します。ADO.NET 接続マネージャで Excel データ ソースを使用するように設定するには、Microsoft OLE DB Provider for Jet を選択して Excel ワークブックを指定し、[接続マネージャ] ダイアログ ボックスの [すべて] ページにある [拡張プロパティ] の値に「Excel 8.0」(Excel 97 以降の場合) と入力します。 |
スクリプト コンポーネントでの接続マネージャの使用方法の詳細については、「スクリプト コンポーネントによる変換元の作成」および「スクリプト コンポーネントによる変換先の作成」を参照してください。
|