Cómo ejecutar SqlCommand utilizando una conexión OLEDB en el componente de script de SSIS.
Estoy utilizando SSIS 2019 y puedo ejecutar el comando SQL con el administrador de conexiones ADO.Net.
Quiero usar el administrador de conexiones OLEDB en un componente Script dentro de una tarea de flujo de datos y estoy obteniendo el siguiente error:
System.InvalidCastException: No se puede convertir el objeto COM de tipo ‘System.__ComObject’ al tipo de clase ‘System.Data.SqlClient.SqlConnection’. Las instancias de tipos que representan componentes COM no se pueden convertir a tipos que no representan componentes COM; sin embargo, se pueden convertir a interfaces siempre que el componente COM subyacente admita llamadas QueryInterface para el IID de la interfaz.
Enlace de la imagen de referencia: aquí
Alguien por favor, ¿me puede informar si podemos usar la conexión OLEDB en un componente de script SSIS en un flujo de datos?
Aquí está el código para las cadenas de conexión
public override void PreExecute()
{
string conn = this.Connections.Connection.ConnectionString;
}
No estoy obteniendo errores de compilación en el código de script C#, pero obtengo un error en el componente de script.
davy.ai
Parece que estás intentando convertir un objeto SqlConnection en un objeto OleDbConnection, lo cual no es posible ya que son dos tipos de conexiones diferentes. Para utilizar una conexión OLEDB en un componente de script dentro de una tarea de flujo de datos, primero debes crear una instancia de la clase OleDbConnection y luego usarla para ejecutar tus comandos SQL.
Puedes hacer esto agregando el siguiente código al método PreExecute de tu componente de script:
Reemplaza “tu_cadena_de_conexión_aquí” con la cadena de conexión real de tu Administrador de conexiones OLEDB. Una vez que hayas creado el objeto OleDbConnection y abierto la conexión, puedes utilizarlo para ejecutar comandos SQL de la misma manera que lo harías con el Administrador de conexiones ADO.Net.
Ten en cuenta que es posible que debas importar el espacio de nombres System.Data.OleDb en la parte superior del archivo de código de tu componente de script para poder utilizar la clase OleDbConnection.