PRB: Jet 4.0LEDB 來源資料的傳輸緩衝區溢位錯誤而失敗

文章翻譯 文章翻譯
文章編號: 281517 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

當您使用匯入資料 Jet OLEDB 4.0 資料來源的資料轉換服務 」 (DTS) 和 Microsoft OLE DB 提供者的 Jet 時,資料幫浦工作可能會因這個錯誤訊息:
「 錯誤來源的資料列數字 9.目前這項工作時發生錯誤: 1"
一般錯誤:-2147217887(80040E21)
3('Col3') 來源資料行的資料是對指定的緩衝區大小而言太大。
若來源與超過 255 個字元的欄位的這些欄位的目的資料可能被截斷為 255 個字元。DTS 無法以超過 255 個字元的欄位的第一列上。若要驗證此,查詢會顯示錯誤訊息中的資料列數目。

發生的原因

Jet OLE DB 提供者會讀取登錄機碼,以判斷資料列數為猜出的來源資料行型別。登錄設定是:

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

根據預設值,此機碼的值為 8。因此,提供者會掃描前 8 列的來源資料,以判斷資料型別,資料行。如果任何欄位看起來像文字和長度的資料是超過 255 個字元、 資料行型別為備忘] 欄位。因此如果超過 255 個字元的來源的前 8 列沒有資料,長度,Jet 無法精確地判斷資料型別的本質。

其他可行方案

重要這個區段、 方法或任務包含告訴您如何修改登錄的步驟。但是,如果您不當修改登錄,可能會發生嚴重的問題。因此,請務必小心執行這些步驟。為加強的保護在修改前備份登錄。然後,您可以在發生問題時還原登錄。如需有關如何備份和還原登錄的詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
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. DWORD 編輯器對話方塊] 方塊按一下小數位數在 [] 下基底.輸入介於 0 到 16 之間的值資料。
  5. 按一下 [[確定]然後結束 [登錄編輯程式。
如果要解決這個問題 (而不修改登錄) 的第二種方法是請確定具有資料 255 個字元的欄位的列或更大,在於來源資料檔的前 8 列。

其他相關資訊

有效的範圍的值,TypeGuessRows索引是 0 到 16。但是,如果值 0 掃描的來源資料列數目是 16384。請注意,零值可能會造成小效能的衝擊,如果原始程式檔很大。

重現問題的步驟

  1. 開啟新的 Microsoft Excel 活頁簿,並建立一個具有三個資料行和 11 的資料列表,包括與資料行名稱的第一列。
  2. 資料插入到儲存格,讓前 8 列有資料少於 255 個字元的長度。
  3. 將大於 255 個字元的長度,到第 10 和 11th 的資料列的資料。將這張工作表儲存為 ExcelSource.xls。
  4. 開啟 SQL Server 企業管理員,展開 [伺服器名稱。以滑鼠右鍵按一下資料轉換服務然後按一下匯入資料.
  5. 的來源選取 Excel 97-2000年提供者,並提供 Excel 工作表的名稱儲存較舊 (ExcelSource.xls)。
  6. [目的] 選取的SQL 的 Microsoft OLEDB 提供者] 然後選取 [目的資料庫。
  7. 按一下 [從來源資料庫複製資料表和檢視表然後按一下下一步.
  8. 選取來源資料表按一下對話方塊選取的 Sheet1$下一步並立即執行封裝。該封裝的執行而失敗徵狀 〉 一節所示的錯誤訊息。

  9. 從目的資料庫卸除資料表 Sheet1$,使用命令卸除資料表 Sheet1$.
  10. 請依照下列 〈 解決方法 〉 一節中的解決方案,並變更登錄機碼TypeGuessRows.
  11. 現在,重複步驟 4 到 8。這一次封裝執行為止。

參考

如需有關這個問題的特定 Microsoft Excel 中,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
189897XL97: 資料被截斷成 255 個字元,Excel ODBC 驅動程式

屬性

文章編號: 281517 - 上次校閱: 2011年2月5日 - 版次: 1.0
這篇文章中的資訊適用於:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
關鍵字:?
kbjet kbprb kbmt KB281517 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:281517
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

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