PRB: Error en la transferencia de datos de origen de Jet 4.0LEDB con Error de desbordamiento de búfer

Seleccione idioma Seleccione idioma
Id. de artículo: 281517 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas

Al importar datos desde un origen de datos OLEDB de Jet 4.0 mediante el uso de servicios de transformación de datos (DTS) y el proveedor Microsoft OLE DB para Jet, se puede producir un error en la tarea de bombeo de datos con este mensaje de error:
"Error en el origen de errores encontrados hasta ahora en esta tarea de fila número 9: 1"
Error general:-2147217887(80040E21)
De 3('Col3') de la columna de origen es demasiado grande para el tamaño de búfer especificado.
Si el origen tiene campos con más de 255 caracteres, pueden que los datos de destino para estos campos se truncan a 255 caracteres. DTS produce un error en la primera fila que tiene un campo con más de 255 caracteres. Para comprobarlo, busque el número de fila que se muestra en el mensaje de error.

Causa

El proveedor OLE DB de Jet lee una clave del registro para determinar cuántas filas se tienen que leer para averiguar el tipo de la columna de origen. La configuración del registro es:

HKLM\Software\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows

De forma predeterminada, el valor de esta clave es 8. Por lo tanto, el proveedor analiza las 8 primeras filas del origen de datos para determinar los tipos de datos para las columnas. Si cualquier campo de la apariencia del texto y la longitud de datos están de más de 255 caracteres, la columna se escribe como un campo memo. Por lo tanto, si no hay ningún dato con una longitud superior a 255 caracteres en las 8 primeras filas del origen, Jet no puede determinar con precisión la naturaleza del tipo de datos.

Solución

ImportanteEsta sección, el método o la tarea se explican los pasos que le indicarán cómo modificar el registro. Sin embargo, pueden producirse problemas graves si modifica incorrectamente el registro. Por lo tanto, asegúrese de que sigue estos pasos cuidadosamente. Para mayor protección, copia de seguridad del registro antes de modificarlo. A continuación, puede restaurar el registro si surge algún problema. Para obtener más información acerca de cómo hacer copia de seguridad y restaurar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
322756Cómo hacer copia de seguridad y restaurar el registro en Windows

Para cambiar el valor deTypeGuessRows, siga estos pasos:
  1. En elIniciomenú, haga clic enEjecutar. En elEjecutarcuadro de diálogo, escribaRegedt32y, a continuación, haga clic enACEPTAR.
  2. Abra la siguiente clave en el editor del registro:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

    NotaPara los sistemas de 64 bits, la clave correspondiente es la siguiente:

    HKLM\SOFTWARE\wow6432node\microsoft\jet\4.0\Engines\Excel
  3. Haga doble clic enTypeGuessRows.
  4. En elEditor de DWORDcuadro de diálogo, haga clic enDecimalbajoBase. Escriba un valor entre 0 y 16, ambos inclusive, paraValordatos.
  5. Haga clic enACEPTARy, a continuación, cierre el Editor del registro.
Una segunda forma de evitar este problema (sin tener que modificar el registro) consiste en Asegúrese de que las filas con los campos, que tienen datos de 255 caracteres o mayor, están presente en las 8 primeras filas del archivo de origen de datos.

Más información

El intervalo válido de valores para elTypeGuessRowsla clave es de 0 a 16. Sin embargo, si el valor es 0, el número de filas de origen analizados es 16384. Tenga en cuenta que un valor de cero puede causar un pequeño impacto si el archivo de origen es muy grande en el rendimiento.

Pasos para reproducir el problema

  1. Abra un nuevo libro de Microsoft Excel y crear una hoja con tres columnas y 11 filas y incluir la primera fila con los nombres de columna.
  2. Insertar datos en las celdas de modo que las 8 primeras filas tienen datos menos de 255 caracteres de longitud.
  3. Insertar datos que es mayores que 255 caracteres de longitud en las filas de la décima y undécima. Guarde esta hoja como ExcelSource.xls.
  4. Abra el Administrador corporativo de SQL Server y expanda el nombre del servidor. Con el botón secundarioServicios de transformación de datosy, a continuación, haga clic enImportar datos.
  5. Para el origen, seleccione el proveedor de Excel 97-2000 y proporcionar el nombre de la hoja de Excel que guardó anteriores (ExcelSource.xls).
  6. Para la instrucción select de destinoProveedor Microsoft OLEDB para SQLy, a continuación, seleccione la base de datos de destino.
  7. Haga clic enCopiar tablas y vistas de la base de datos de origen.y, a continuación, haga clic enSiguiente.
  8. En elSeleccione las tablas de origencuadro de diálogo, seleccione Hoja1$, haga clic enSiguiente, y, a continuación, ejecute el paquete inmediatamente. Se produce un error en la ejecución del paquete con el mensaje de error que se muestra en la sección "Síntomas".

  9. Eliminar la Sheet1$ de la tabla de la base de datos de destino mediante el comandoEliminar tabla Sheet1$.
  10. Siga la resolución en la sección "Solución" y realizar el cambio en la clave del registroTypeGuessRows.
  11. A continuación, repita los pasos 4 a 8. Esta vez la ejecución del paquete es correcta.

LAS REFERENCIAS

Para obtener información adicional acerca de este comportamiento específico de Microsoft Excel, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
189897XL97: Truncados los datos a 255 caracteres con el controlador ODBC para Excel

Propiedades

Id. de artículo: 281517 - Última revisión: sábado, 5 de febrero de 2011 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Palabras clave: 
kbjet kbprb kbmt KB281517 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 281517

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com