REVISIÓN: Mensaje de Error cuando ejecuta un paquete de SQL Server 2005, SQL Server 2008 o SQL Server 2008 R2 Integration Services (SSIS) después de instalar.NET Framework 2.0 Service Pack 2 o el Service Pack 1 de.NET Framework 3.5: "ADO NET Source [1424]"

Se aplica a: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Developer EditionMicrosoft SQL Server 2005 Enterprise Edition

Microsoft distribuye Microsoft SQL Server 2005, Microsoft SQL Server 2008, y Microsoft SQL Server 2008 R2 corrige como un archivo descargable. Como las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior SQL Server 2005, Microsoft SQL Server 2008 o SQL Server 2008 R2.

Síntomas


Imagine el siguiente escenario:
  • Ejecutar un paquete de Microsoft SQL Server 2005, Microsoft SQL Server 2008 o SQL Server 2008 R2 Integration Services (SSIS) en un equipo que tiene una de las siguientes instalaciones de.NET Framework:
    • El.NET Framework 2.0 Service Pack 2 (SP2)
    • El.NET Framework 3.5 Service Pack 1 (SP1)
  • El paquete SSIS utiliza un controlador ODBC de terceros que importa los datos de carácter.
Sin embargo, cuando se ejecuta el paquete SSIS, recibirá los mensajes de error siguientes:
[ADO NET Source [1424]] Error: Código de Error SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. El "componente"Origen de ADO NET"(1424)" error porque se produjo el código de error 0x80131937 y la disposición de filas de error en "columna de salida"columnname"(número)" especifica el error en caso de error. Se produjo un error en el objeto especificado del componente especificado. Puede haber mensajes de error registrados antes de esto con más información acerca del error.

Error 0xc0209029: Tarea de flujo de datos: error en el "componente"ComponentName"(1)" porque se produjo el código de error 0x80131937...

[ADO NET Source [1424]] Error: El componente "Origen de ADO NET" (1424) no pudo procesar los datos. Componente de canalización ha devuelto el código de error HRESULT 0xC0209029 desde una llamada al método.

[SSIS. Error de canalización]: código de Error SSIS DTS_E_PRIMEOUTPUTFAILED. El método PrimeOutput en el código de error devuelto (1424) "ADO NET Source" del componente 0xC02090F5. El componente devolvió un código de error cuando el motor de canalización llamó a PrimeOutput(). El significado del código de error se define por el componente, pero el error es grave y la canalización se ha detenido. Puede haber mensajes de error registrados antes de esto con más información acerca del error.
Este problema afecta a los controladores ODBC que se accede desde el proveedor administrado de ODBC cuando se cumplen las condiciones siguientes:
  • El parámetro CommandBehavior.SequentialAccess llama a la función ExecuteReader . Esta llamada y el parámetro se utilizan en las siguientes circunstancias:
    • Cuando un paquete de SQL Server 2005 SSIS lee los datos desde un origen de DataReader o cuando un paquete de SQL Server 2008 SSIS lee datos de un origen de datos ADO.NET administrado.
    • El origen de datos no está configurado para redirigir los valores de truncamiento y error.
  • Se llama a la función OdbcDataReader.IsDbNull . El paquete SSIS utiliza este método para determinar si el valor de un campo es NULL o no.
  • Se llama a una de las siguientes funciones:
    • Se llama a la función OdbcDataReader.GetBytes para obtener ciertos tipos de datos, como DT_BYTES, desde el proveedor administrado de ODBC.
    • Se llama a la función OdbcDataReader.GetChars para obtener ciertos tipos de datos de cadena, como DT_WSTR, desde el proveedor administrado de ODBC.

Causa


El Service Pack 2 de.NET Framework 2.0 y.NET Framework 3.5 SP1 introducen un cambio en el proveedor administrado de ODBC, mediante el cual se leen cadenas de controlador ODBC nativo en el escenario que se describe en la sección "Síntomas". Debido a este cambio, el proveedor administrado de ODBC que se llama en el controlador ODBC nativo mediante la función de API SQLGetData utiliza un búfer de tamaño 0. Controladores ODBC compatibles no tiene problemas en esta llamada. Sin embargo, los controladores ODBC pueden fallar en estas circunstancias. Para un controlador compatible con ODBC, la función SQLGetData API devuelve SUCCESS_WITH_INFO cuando un búfer de tamaño 0 se detecta. Para un controlador ODBC no conforme, la llamada devuelve NO_DATA.

Solución


Información de la revisión

Existe un hotfix disponible desde Microsoft. Sin embargo, esta revisión se diseñó para corregir únicamente el problema que se describe en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico. Esta revisión podría ser sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere a la próxima actualización de software que contenga este hotfix.

Si la revisión está disponible para su descarga, hay una sección de "Descarga de revisión disponible" en la parte superior de este artículo de Knowledge Base. Si esta sección no aparece, póngase en contacto con el servicio al cliente de Microsoft y soporte técnico para obtener la revisión.

Nota: Si se producen problemas adicionales o si se requiere cualquier otra solución, será necesario crear una solicitud de revisión independiente. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no califican para esta revisión específica. Para obtener una lista completa de los números de teléfono de servicio al cliente de Microsoft o para crear una solicitud de servicio independiente, visite el siguiente sitio Web de Microsoft:Nota: El formulario de "Descarga de Hotfix disponible" muestra los idiomas para los que el Hotfix está disponible. Si no ve su idioma, es porque no hay una revisión para ese idioma.

Requisitos previos

Debe tener instalado.NET Framework 2.0 Service Pack 2.

Información de reinicio

No es necesario que reinicie el equipo después de aplicar este hotfix.

Información del registro

No es necesario cambiar el registro.

Información de archivo de hotfix

Este hotfix contiene sólo los archivos necesarios para corregir los problemas que se enumera en este artículo. Este hotfix no puede contener de todos los archivos que debe tener para actualizar plenamente un producto a la compilación más reciente. Versión del inglés de esta revisión tiene los atributos de archivo (o atributos de último archivo) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha zona horaria en el elemento fecha y hora del Panel de Control.
.NET Framework 2.0 para Windows 2000, Windows Server 2003, Windows XP, versiones de 32 bits
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
System.data.dll2.0.50727.40632,933,76019-05:08x86
.NET Framework 2.0 para Windows 2000, Windows Server 2003, Windows XP, x64 versiones
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
System.data.dll2.0.50727.40633,008,51218-23:51x64
System.data.dll2.0.50727.40632,933,76019-05:08x86
.NET Framework 2.0 para Windows 2000, Windows Server 2003, versiones de Windows XP, IA-64
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
System.data.dll2.0.50727.40632,933,76019-05:08x86
System.data.dll2.0.50727.40633,234,81619-01:09IA-64
.NET Framework 2.0 para las versiones de 32 bits de Windows Vista, Windows Server 2008,
Nombre del archivoVersión del archivoTamaño de archivoFechaHora
System.data.dll2.0.50727.44002,933,76010-Sep-200911:54
.NET Framework 2.0 para Windows Vista, Windows Server 2008, x64 versiones
Nombre del archivoVersión del archivoTamaño de archivoFechaHora
System.data.dll2.0.50727.44003,008,51210-Sep-200911:54
.NET Framework 2.0 para Windows Vista, Windows Server 2008, versiones IA-64
Nombre del archivoVersión del archivoTamaño de archivoFechaHora
System.data.dll2.0.50727.44003,234,81610-Sep-200911:54

Solución alternativa


Para evitar este problema, utilice uno de los métodos siguientes.

Método 1

Modificar el paquete SSIS para configurar la redirección de truncamiento y de Error en el origen de DataReader o en el origen de datos ADO.NET administrado. Después de modificar el paquete SSIS para redirigir la salida de error a un destino, el paquete se ejecutará correctamente, incluso si no hay filas se escriben en el destino. Para ello, siga estos pasos:

Nota: Los pasos siguientes se supone que está utilizando un paquete de SQL Server 2005 SSIS que lee datos de un origen de DataReader.
  1. Abra el paquete SSIS en SQL Server Business Intelligence Development Studio.
  2. Abra el cuadro de diálogo del Editor avanzado para el origen de DataReader en el Diseñador de flujo de datos.
  3. Haga clic en la ficha Propiedades de salida y de entrada y, a continuación, expanda el nodo de Salida de DataReader en el árbol de entradas y salidas .
  4. Expanda el nodo Columnas de salida .
  5. Haga clic en cada columna en el nodo de Columnas de resultados y, a continuación, examine la propiedad DataType . Para cada columna cuya propiedad tipo de datos DT_WSTR, DT_NTEXT, DT_BYTES o DT_IMAGE, edite las dos propiedades siguientes:
    • Establezca la propiedad ErrorRowDisposition a RD_RedirectRow.
    • Establezca la propiedad TruncationRowDisposition en RD_RedirectRow.
  6. Haga clic en Aceptar para guardar los cambios.
  7. En el Diseñador de flujo de datos, agregar un nuevo destino. Por ejemplo, agregar un destino de archivo plano o un destino de SQL Server.

  8. Utilice la flecha roja desde el origen de DataReader para conectarse al destino recién agregado. Esta operación le dirigirá las filas de error y las filas de truncamiento en el destino para guardar las filas de error.

  9. Repita los pasos 1 a 8 para todas las tareas de flujo de datos que access ODBC cadena o imagen de columnas y que fallan con los mensajes de error que se mencionan en la sección "Síntomas".

Método 2

Desinstalar el Service Pack 2 de.NET Framework 2.0 o.NET Framework 3.5 SP1. Sin embargo, no recomendamos que desinstale un service pack, porque esto sacrifica la confiabilidad, mejoras y optimizaciones de rendimiento que ofrece el service pack.



Para restaurar el sistema al estado en que estaba antes de instalar.NET Framework 2.0 Service Pack 2 o el Service Pack 1 de.NET Framework 3.5, siga estos pasos:
  1. En el Panel de Control, haga doble clic en Agregar o quitar programas.
  2. Busque Microsoft.NET Framework 3.5 SP1 y, a continuación, desinstálelo.
  3. Busque Microsoft.NET Framework 3.0 SP2 y, a continuación, desinstálelo.
  4. Busque Microsoft.NET Framework 2.0 SP2 y, a continuación, desinstálelo.
  5. Vuelva a instalar la versión original de.NET Framework 3.5. Este paso se vuelva a instalar el Service Pack 1 de.NET Framework 2.0 y.NET Framework 3.0 SP1. Para obtener la 3.5 de.NET Framework, visite el siguiente sitio Web de Microsoft:

Método 3

Póngase en contacto con el fabricante del controlador ODBC de terceros para determinar si el proveedor tiene una actualización para el controlador resolver este problema.

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".