スクリプト コンポーネントでのデータ ソースへの接続
適用対象: SQL Server Azure Data Factory の SSIS 統合ランタイム
接続マネージャーは、便宜上、特定の種類のデータ ソースに接続するために必要な情報をカプセル化して格納するユニットです。 詳細については、「Integration Services (SSIS) の接続」を参照してください。
既存の接続マネージャーを、変換元または変換先コンポーネントのカスタム スクリプトでアクセスできるようにするには、[スクリプト変換エディター] の [接続マネージャー] ページで、[追加] および [削除] ボタンをクリックします。 ただし、データの読み込みや保存、場合によってはデータ ソースとの接続や切断を行うためには、独自のカスタム コードを記述する必要があります。 [スクリプト変換エディター] の [接続マネージャー] ページの詳細については、「スクリプト コンポーネント エディターでのスクリプト コンポーネントの構成」および「スクリプト変換エディター ([接続マネージャー] ページ)」を参照してください。
スクリプト コンポーネントは、ComponentWrapper プロジェクト アイテム内に Connections コレクション クラスを作成します。ここには、各接続マネージャーに対して、接続マネージャー自体と同じ名前を持つ、厳密に型指定されたアクセサー プロパティが含まれています。 このコレクションは、ScriptMain クラスの Connections プロパティを介して公開されます。 アクセサー プロパティは、接続マネージャーへの参照を IDTSConnectionManager100 のインスタンスとして返します。 たとえば、ダイアログ ボックスの [接続マネージャー] ページで MyADONETConnection
という名前の接続マネージャーを追加した場合、次のコードを追加することで、スクリプト内のその接続マネージャーへの参照を取得できます。
Dim myADONETConnectionManager As IDTSConnectionManager100 = _
Me.Connections.MyADONETConnection
Note
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 接続の接続文字列を使用することにより、コード内でデータ ソースに直接接続することができます。
アンマネージ オブジェクトを返す接続マネージャーの 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 以降の場合) と入力します。
スクリプト コンポーネントを使用して接続マネージャーを使用する方法の詳細については、「スクリプト コンポーネントによる変換元の作成」および「スクリプト コンポーネントによる変換先の作成」を参照してください。