Componente de Secuencia de Tareas de Integración de Datos (SSIS) convierte variable de tipo objeto a variable de tipo entero.
Necesito cargar datos desde una fuente ODBC a un destino OLEDB. La tabla de destino OLEDB no contiene una columna Identity, pero sí tiene una columna de clave principal en la que se deben insertar los valores de manera similar a la columna Identity (incrementándolos en 1).
He consultado la tabla de destino (fuente OLEDB) y he recuperado el valor máximo (Id) y lo he asignado a una variable de SSIS de tipo Object. Utilizo el componente de Script desde el flujo de datos para obtener el valor max (Id) + 1
fila por fila.
Al intentar convertir la variable de tipo Object a tipo Integer, me aparece un error como:
No se puede convertir el objeto COM de tipo ‘System._ComObject’ al tipo de interfaz ‘System.IConvertible’. Esta operación falló porque la llamada QueryInterface al componente COM para la interfaz con IID ‘{805E3B62-B5E9-393D-8941-377D8BF4556B}’ falló debido al siguiente error: No se admite esta interfaz (Exception from HRESULT: 0x80004002 (ENOINTERFACE)).
La columna de la tabla de destino no se puede alterar.
MaxUID = Variable de objeto
RowNumber = Variable de salida
Código del componente de Script:
int i = 1;
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
Row.RowNumber = Convert.ToInt32(this.Variables.MaxUID) + 1;
i = i + 1;
}
davy.ai
Solución para Convertir una Variable de Objeto a Tipo Entero en SSIS
Para resolver el error de conversión de una variable de tipo objeto a tipo entero en SSIS, puede intentar la siguiente solución:
Es posible que deba modificar el código según sus requisitos con respecto a cómo se usará la variable de salida (RowNumber).
Siguiendo la solución mencionada anteriormente, debería poder convertir una variable de objeto a tipo entero en SSIS sin errores.