次の方法で共有


スクリプト タスクでのデータ ソースへの接続

更新 : 2006 年 4 月 14 日

接続マネージャは、パッケージ内に構成されたデータ ソースへのアクセスを提供します。詳細については、「Integration Services の接続」および「接続マネージャ」を参照してください。

スクリプト タスクは、 Dts オブジェクトの Connections プロパティを介して、これらの接続マネージャにアクセスできます。Connections コレクション内の各接続マネージャは、基になるデータ ソースへの接続方法に関する情報を格納しています。

接続マネージャの AcquireConnection メソッドを呼び出すと、その接続マネージャがまだ接続されていない場合、データ ソースに接続され、ユーザーのスクリプト タスク コードで使用する適切な接続または接続情報が返されます。

ms136018.note(ja-jp,SQL.90).gifメモ :
AcquireConnection を呼び出す前に、接続マネージャによって返される接続の種類を知っておく必要があります。スクリプト タスクでは Option Strict が有効なので、Object 型として返される接続は、使用する前に適切な種類の接続にキャストする必要があります。

Connections プロパティによって返される Connections コレクションの Contains メソッドを使用すると、既存の接続をコードで使用する前に検索できます。

ms136018.note(ja-jp,SQL.90).gif重要 :
スクリプト タスクのマネージ コードでは、OLE DB 接続マネージャや Excel 接続マネージャなど、アンマネージ オブジェクトを返す接続マネージャの AcquireConnection メソッドを呼び出すことはできません。ただし、これらの接続マネージャの ConnectionString プロパティを読み取り、接続文字列を System.Data.OleDb 名前空間の OledbConnection と共に使用することにより、コード内でデータ ソースに直接接続することができます。 アンマネージ オブジェクトを返す接続マネージャの 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 以降の場合) と入力します。

接続の例

次の例では、スクリプト タスク内での接続マネージャへのアクセス方法を示します。この例では、Test ADO.NET Connection という名前の ADO.NET 接続マネージャ、および Test Flat File Connection という名前のフラット ファイル接続マネージャを作成して構成していることを前提としています。ADO.NET 接続マネージャは、データ ソースに接続するためにすぐに使用できる SqlConnection オブジェクトを返すことに注意してください。これに対し、フラット ファイル接続マネージャは、パスとファイル名が含まれる文字列のみを返します。フラット ファイルを開いて処理するには、System.IO 名前空間のメソッドを使用する必要があります。

Public Sub Main()

    Dim myADONETConnection As SqlClient.SqlConnection
    myADONETConnection = _
        DirectCast(Dts.Connections("Test ADO.NET Connection").AcquireConnection(Dts.Transaction), _
        SqlClient.SqlConnection)
    MsgBox(myADONETConnection.ConnectionString, _
        MsgBoxStyle.Information, "ADO.NET Connection")

    Dim myFlatFileConnection As String
    myFlatFileConnection = _
        DirectCast(Dts.Connections("Test Flat File Connection").AcquireConnection(Dts.Transaction), _
        String)
    MsgBox(myFlatFileConnection, MsgBoxStyle.Information, "Flat File Connection")

    Dts.TaskResult = Dts.Results.Success

End Sub

参照

その他の技術情報

Integration Services の接続
接続マネージャの作成

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

変更内容 :
  • ネイティブ オブジェクトを返す接続マネージャを使用するときの制限についての説明を改善しました。