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

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

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

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

注意

AcquireConnection を呼び出す前に、接続マネージャーによって返される接続の種類を知っておく必要があります。 スクリプト タスクでは Option Strict が有効なので、Object 型として返される接続は、使用する前に適切な種類の接続にキャストする必要があります。

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

重要な注意事項重要

スクリプト タスクのマネージ コードでは、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 = ScriptResults.Success

End Sub
using System;
using System.Data.SqlClient;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;

public class ScriptMain
{



        public void Main()
        {
            SqlConnection myADONETConnection = new SqlConnection();
            myADONETConnection = (SqlConnection)(Dts.Connections["Test ADO.NET Connection"].AcquireConnection(Dts.Transaction)as SqlConnection);
            MessageBox.Show(myADONETConnection.ConnectionString, "ADO.NET Connection");

            string myFlatFileConnection;
            myFlatFileConnection = (string)(Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction) as String);
            MessageBox.Show(myFlatFileConnection, "Flat File Connection");

            Dts.TaskResult = (int)ScriptResults.Success;

        }

} 
Integration Services のアイコン (小) 最新の Integration Services の入手

マイクロソフトが提供する最新のダウンロード、アーティクル、サンプル、ビデオ、およびコミュニティで選択されたソリューションについては、MSDN の Integration Services のページを参照してください。


これらの更新が自動で通知されるようにするには、ページの RSS フィードを定期受信します。

関連項目

タスク

接続マネージャーを作成する

概念

Integration Services (SSIS) の接続