Connexion à des sources de données dans la tâche de script
S’applique à : SQL Server SSIS Integration Runtime dans Azure Data Factory
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’objetDts. 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.
Notes
Vous devez connaître le type de connexion renvoyé par le gestionnaire de connexions avant d’appeler AcquireConnection. Dans la mesure où Option Strict est activé pour la tâche de script, vous devez caster la connexion (retournée en tant que type Object) en 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 spécifiant un OledbConnection 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 à la place d’un objet non managé. Pour configurer un gestionnaire de connexions ADO.NET en vue de son 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 est supposé dans l’exemple 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 =
DirectCast(Dts.Connections("Test ADO.NET Connection").AcquireConnection(Dts.Transaction),
SqlClient.SqlConnection)
MsgBox(myADONETConnection.ConnectionString,
MsgBoxStyle.Information, "ADO.NET Connection")
Dim myFlatFileConnection As String =
DirectCast(Dts.Connections("Test Flat File Connection").AcquireConnection(Dts.Transaction),
String)
MsgBox(myFlatFileConnection, MsgBoxStyle.Information, "Flat File Connection")
Dts.TaskResult = ScriptResults.Success
End Sub
public void Main()
{
SqlConnection myADONETConnection =
Dts.Connections["Test ADO.NET Connection"].AcquireConnection(Dts.Transaction)
as SqlConnection;
MessageBox.Show(myADONETConnection.ConnectionString, "ADO.NET Connection");
string myFlatFileConnection =
Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction)
as string;
MessageBox.Show(myFlatFileConnection, "Flat File Connection");
Dts.TaskResult = (int)ScriptResults.Success;
}
Voir aussi
Connexions Integration Services (SSIS)
Créer des gestionnaires de connexions