Il est possible d'utiliser OleDbConnections avec le Composant de Script?
Je suis en train de construire un package ssis et je souhaite utiliser une OleDbConnection à l'intérieur du Composant de Script. Voici mon code:
public override void AcquireConnections(object Transaction)
{
base.AcquireConnections(Transaction);
cm = this.Connections.Connection;
con = (OleDbConnection)cm.AcquireConnection(Transaction);
MessageBox.Show(con.ToString());
}
Quand je ferme les OFFRES, j'obtiens le message suivant:
"Le système de.InvalidCastException: Impossible de convertir l'objet COM de type 'System.__Objet com' à la classe de type 'System.Les données.OleDb.OleDbConnection'. Des Instances de types qui représentent les composants COM ne peut pas être jeté aux types qui ne représentent pas des composants COM; cependant, ils peuvent être jetés aux interfaces en tant que sous-jacents composant COM prend en charge QueryInterface appels pour l'IID de l'interface."
Le même code fonctionne très bien avec un Ado.Net connexion. Puis-je utiliser OleDbConnection ici ou Composant de Script prend uniquement en charge les Ado.Net?
Merci d'avance.
- Cela vous aidera à: [lien] (akshaya-m.blogspot.com/2017/02/...)
Vous devez vous connecter pour publier un commentaire.
Comme mentionné dans le
MSDN
Vous devez utiliser
ADO.NET
gestionnaire de connexion si vous souhaitez utiliserAquire Connection
méthodepour utiliser la connexion OLEDB ajouter une référence à
Microsoft.SqlServer.DTSRuntimeWrap
et essayer le code ci-dessousMSDN Lien
Grâce praveen.
J'ai trouvé la partie pertinente dans votre lien:
"Si vous devez appeler la méthode AcquireConnection d'un gestionnaire de connexion qui retourne un objet non managé, utiliser un ADO.NET le gestionnaire de connexion. Lorsque vous configurez le ADO.NET gestionnaire de connexion à utiliser un fournisseur OLE DB, il se connecte en utilisant le .NET Framework Fournisseur de Données OLE DB. Dans ce cas, la méthode AcquireConnection retourne un Système.Les données.OleDb.OleDbConnection au lieu d'un objet non managé. Pour configurer une ADO.NET le gestionnaire de connexion pour une utilisation avec une source de données Excel, sélectionnez le Fournisseur Microsoft OLE DB pour Jet, spécifiez un fichier Excel, et entrez Excel 8.0 (pour Excel 97 et versions ultérieures) que la valeur des Propriétés Étendues sur la page de la boîte de dialogue Connection Manager."
Merci!
Juste au cas où quelqu'un googlé ce et ne pouvais pas trouver une vraie solution, vous devez remplacer la AcquireConnections, PreExceute et ReleaseConnections méthodes pour utiliser un objet OleDbConnection. Le truc, c'est la propriété ConnectionString:
HTH