Connexion à des sources de données dans la tâche de script
Les gestionnaires de connexions fournissent un accès à des sources de données qui ont été configurées dans le package. Pour plus d'informations, consultez Connexions Integration Services (SSIS).
La tâche de script peut accéder à ces gestionnaires de connexions via la propriété Connections de l'objet Dts . Chaque gestionnaire de connexions compris dans la collection Connections stocke des informations sur la manière d'établir une connexion à la source de données sous-jacente.
Lorsque vous appelez la méthode AcquireConnection d'un gestionnaire de connexions, le gestionnaire de connexions se connecte à la source de données, s'il n'est pas déjà connecté, puis renvoie la connexion ou les informations de connexion appropriées que vous devez utiliser dans le code de votre tâche de script.
[!REMARQUE]
Vous devez connaître le type de connexion renvoyé par le gestionnaire de connexions avant d'appeler AcquireConnection. Étant donné que la tâche de script a Option Strict activé, vous devez effectuer un cast de la connexion, qui est retournée en tant que type Object, vers le type de connexion approprié avant de pouvoir l'utiliser.
Vous pouvez utiliser la méthode Contains de la collection Connections renvoyée par la propriété Connections pour rechercher une connexion existante avant d'utiliser la connexion dans votre code.
Important
Vous ne pouvez pas appeler la méthode AcquireConnection des gestionnaires de connexions qui renvoient des objets non managés, tels que le gestionnaire de connexions OLE DB et le gestionnaire de connexions Excel, dans le code managé d'une tâche de script. Toutefois, vous pouvez lire la propriété ConnectionString de ces gestionnaires de connexions et vous connecter directement à la source de données dans votre code en utilisant la chaîne de connexion avec un OledbConnection à partir de l'espace de noms System.Data.OleDb.
Si vous devez appeler la méthode AcquireConnection d'un gestionnaire de connexions qui retourne un objet non managé, utilisez un gestionnaire de connexions ADO.NET. Lorsque vous configurez le gestionnaire de connexions ADO.NET afin d'utiliser un fournisseur OLE DB, il se connecte en utilisant le fournisseur de données .NET Framework pour OLE DB. Dans ce cas, la méthode AcquireConnection retourne un System.Data.OleDb.OleDbConnection au lieu d'un objet non managé. Pour configurer un gestionnaire de connexions ADO.NET pour une utilisation avec une source de données Excel, sélectionnez le fournisseur Microsoft OLE DB pour Jet, spécifiez un fichier Excel, puis entrez Excel 8.0 (pour Excel 97 et versions ultérieures) comme valeur Propriétés étendues dans la page Tout de la boîte de dialogue Gestionnaire de connexions.
Exemple de connexions
L'exemple suivant montre comment accéder aux gestionnaires de connexions à partir de la tâche de script. Il suppose que vous avez créé et configuré un gestionnaire de connexions ADO.NET nommé Connexion ADO.NET test et un gestionnaire de connexions de fichiers plats nommé Connexion de fichiers plats test. Notez que le gestionnaire de connexions ADO.NET retourne un objet SqlConnection que vous pouvez utiliser immédiatement pour vous connecter à la source de données. Le gestionnaire de connexions de fichiers plats, en revanche, retourne uniquement une chaîne qui contient le chemin d'accès et le nom du fichier. Vous devez utiliser les méthodes de l'espace de noms System.IO pour ouvrir et utiliser le fichier plat.
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;
}
}
|
Voir aussi
Tâches
Créer des gestionnaires de connexions