連接至指令碼工作中的資料來源

連接管理員會提供已在封裝中設定的資料來源存取權。 如需詳細資訊,請參閱 Integration Services (SSIS) 連線

指令碼工作可以透過 Dts 物件的 Connections 屬性來存取這些連線管理員。 在 Connections 集合中的每個連接管理員儲存有關如何連接至基礎資料來源的資訊。

當您呼叫連接管理員的 AcquireConnection 方法時,如果連接管理員尚未連接,連接管理員會連接至資料來源,並傳回適當的連接或是連接資訊,供您在指令碼工作程式碼中使用。

注意

您必須先知道連線管理員傳回的連線類型,才能呼叫 AcquireConnection。 因為腳本工作已啟用 Option Strict ,所以您必須將傳回為 類型 Object的連接轉換為適當的連接類型,才能使用它。

您可以在程式碼中使用連接之前,先透過 Contains 屬性傳回的 Connections 集合之 Connections 方法,尋找現有的連接。

重要

在指令碼工作的 Managed 程式碼中,無法呼叫傳回 Unmanaged 物件之連線管理員的 AcquireConnection 方法,例如 OLE DB 連線管理員與 Excel 連線管理員。 不過,您可以讀取這些連接管理器的 ConnectionString 屬性,並使用 連接字串 搭配 OledbConnection System.Data.OleDb 命名空間中的 ,直接連接到程式代碼中的數據源。

若您必須呼叫會傳回未受控物件之連線管理員的 AcquireConnection 方法,請使用 ADO.NET 連線管理員。 當您設定 ADO.NET 連接管理員以使用 OLE DB 提供者時,它會透過使用 .NET Framework Data Provider for OLE DB 來連接。 在此情況下,AcquireConnection 方法會 System.Data.OleDb.OleDbConnection 傳回 而非 Unmanaged 物件。 若要將 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 保持最新狀態
如需來自Microsoft的最新下載、文章、範例和影片,以及來自社群的所選解決方案,請流覽 MSDN 上的 Integration Services 頁面:

流覽 MSDN 上的 Integration Services 頁面

如需這些更新的自動通知,請訂閱頁面上可用的 RSS 摘要。

另請參閱

Integration Services (SSIS) 連接
建立連線管理員