PRB: Передача данных из источника Jet 4.0LEDB происходит сбой с ошибкой переполнения буфера

Переводы статьи Переводы статьи
Код статьи: 281517 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

При импорте данных из источника данных OLEDB Jet 4.0 с помощью служб DTS и поставщика Microsoft OLE DB для Jet может произойти сбой задачи приема-передачи данных с помощью этого сообщения об ошибке:
"Об источнике для 9 номеров строк ошибок, обнаруженных в этой задаче: 1"
Общая ошибка:-2147217887(80040E21)
Данных для исходного столбца 3('Col3') превышает размер, заданный размер буфера.
Если источник содержит поля с более 255 знаков, место назначения данных для этих полей могут быть усечены до 255 символов. DTS не на первой строке, имеет поле более 255 знаков. Чтобы убедиться в этом, найти номер строки, который отображается в сообщении об ошибке.

Причина

Поставщик OLE DB для Jet считывает раздел реестра, чтобы определить, сколько строк для чтения для взлома типа исходного столбца. Это параметр реестра:

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

По умолчанию значение для этого раздела равно 8. Следовательно поставщик сканирует первые восемь строк исходных данных, чтобы определить типы данных для столбцов. Если любое поле выглядит как текст и длину данных более 255 знаков, столбец имеет тип поля memo. Поэтому, если нет данных, длина которых превышает 255 знаков в первые восемь строк источника, Jet не может точно определить характер типа данных.

Временное решение

Важные Этот раздел, метод или задача содержит действия, о том, как внести изменения в реестр. Тем не менее при неправильном изменении реестра, могут возникнуть серьезные проблемы. Таким образом Убедитесь, что внимательно выполните следующие действия. Для дополнительной защиты резервную копию реестра перед внесением изменений. Затем при возникновении неполадок можно восстановить реестр. Для получения дополнительных сведений о том, как резервное копирование и восстановление реестра щелкните следующий номер статьи базы знаний Майкрософт:
322756 Резервное копирование и восстановление реестра Windows

Чтобы изменить значение TypeGuessRows, выполните следующие действия:
  1. На Начало меню, нажмите кнопку Запустить. В Запустить диалоговое окно, тип Regedt32, а затем нажмите кнопку ОК.
  2. В редакторе реестра откройте следующий раздел:

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

    ПримечаниеДля 64-разрядных систем соответствующий ключ выглядит следующим образом:

    HKLM\SOFTWARE\wow6432node\microsoft\jet\4.0\engines\excel
  3. Дважды щелкните значок TypeGuessRows.
  4. В Редактор двойных СЛОВ диалоговое окно, нажмите кнопку Десятичный Из списка Основание. Введите значение от 0 до 16 включительно, для Значение данные.
  5. Нажмите кнопку ОК, а затем закройте редактор реестра.
Второй способ временного решения проблемы (без внесения изменений в реестр), следует убедиться, что строки с полями, имеющими данных 255 символов или более поздней версии, присутствующие в первые восемь строк из файла источника данных.

Дополнительная информация

Допустимый диапазон значений для TypeGuessRows ключ — 0 до 16. Тем не менее если значение равно 0, число строк источника, проверенных — 16384. Помните, что нулевое значение может привести к небольшой производительности попаданий при очень большом исходный файл.

Действия по воспроизведению проблемы

  1. Откройте новую книгу Microsoft Excel и создайте таблицу с тремя столбцами и строками 11 и включать первую строку с именами столбцов.
  2. Вставьте данные в ячейки, чтобы могли первые восемь строк данных меньше 255 знаков в длину.
  3. Вставка данных, превышающее 255 знаков в строках 10 и 11. Сохраните этот лист в виде ExcelSource.xls.
  4. Откройте SQL Server Enterprise Manager и разверните имя сервера. Щелкните правой кнопкой мыши Службы DTS, а затем нажмите кнопку Импорт данных.
  5. Для источника выберите поставщик Microsoft Excel 97-2000 и предоставить имя листа Excel сохранения более ранних версий (ExcelSource.xls).
  6. Для выбора назначения Поставщика Microsoft OLE DB для SQL, а затем выберите целевую базу данных.
  7. Нажмите кнопку Копирование таблицы и представления из источника DB, а затем нажмите кнопку Далее.
  8. В Выбор исходных таблиц Откройте диалоговое окно, выберите Лист1$ Далее, а затем пакет запущен немедленно. Выполнение пакета завершается ошибкой с сообщением об ошибке, приведенные в разделе «Проблема».

  9. Удалить таблицу Лист1$ из целевой базы данных с помощью команды Удалить таблицу Лист1$.
  10. Выполните разрешение в разделе «Временное решение» и внести изменения в раздел реестра TypeGuessRows.
  11. Теперь повторите шаги с 4 по 8. На этот раз успешного выполнения пакета.

ССЫЛКИ

Для получения дополнительных сведений об этой проблеме в Microsoft Excel щелкните следующий номер статьи базы знаний Майкрософт:
189897 XL97: Данные будут усечены до 255 символов с помощью драйвера ODBC Microsoft Excel

Свойства

Код статьи: 281517 - Последний отзыв: 5 июня 2011 г. - Revision: 5.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Ключевые слова: 
kbjet kbprb kbmt KB281517 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:281517

Отправить отзыв

 

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