PRB: Trasferimento di dati dall'origine Jet 4.0LEDB ha esito negativo con errore di Overflow del Buffer

Traduzione articoli Traduzione articoli
Identificativo articolo: 281517 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Quando si importano dati da un'origine dati OLE DB di Jet 4.0 utilizzando Data Transformation Services (DTS) e il provider Microsoft OLE DB per Jet, l'attività data pump potrebbe non riuscire con questo messaggio di errore:
"Errore in origine per la riga numero 9.exe errori rilevati finora in questo compito: 1"
Errore generale:-2147217887(80040E21)
I dati per la colonna di origine 3('Col3') sono troppo grandi per la dimensione del buffer specificato.
Se l'origine include i campi con più di 255 caratteri, i dati di destinazione per questi campi possono essere troncati a 255 caratteri. DTS non funziona sulla prima riga contenente un campo con più di 255 caratteri. Per effettuare questa verifica, cercare il numero di riga viene visualizzato il messaggio di errore.

Cause

Il provider OLE DB per Jet legge una chiave del Registro di sistema per determinare quante righe devono essere letti da indovinare il tipo di colonna di origine. L'impostazione del Registro di sistema è:

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

Per impostazione predefinita, il valore di questa chiave è 8. Di conseguenza, il provider analizza le prime otto righe di dati di origine per determinare i tipi di dati per le colonne. Se tutti i campi sono simile al testo e la lunghezza dei dati sono più di 255 caratteri, la colonna è tipizzata come un campo memo. In questo modo, se non contiene dati con una lunghezza maggiore di 255 caratteri nelle prime otto righe dell'origine, Jet non è possibile determinare esattamente la natura del tipo di dati.

Workaround

ImportanteQuesta sezione, metodo o attività sono contenute procedure che consentono di indicare come modificare il Registro di sistema. Tuttavia, può causare seri problemi se si modifica il Registro di sistema in modo non corretto. Pertanto, assicurarsi di seguire attentamente i passaggi. Per una maggiore protezione, eseguire il backup del Registro di sistema prima di modificarlo. Quindi, è possibile ripristinare il Registro di sistema se si verifica un problema. Per ulteriori informazioni su come eseguire il backup e ripristinare il Registro di sistema, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
articolo 322756Come eseguire il backup e ripristinare il Registro di sistema in Windows

Per modificare il valore diTypeGuessRows, utilizzare i passaggi seguenti:
  1. NelIniziomenu, fare clic suEsegui. NelEseguiNella finestra di dialogo tipoRegedt32, quindi fare clic suOK.
  2. Aprire la seguente chiave nell'editor del Registro di sistema:

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

    NotaPer sistemi a 64 bit, la chiave corrispondente è il seguente:

    HKLM\SOFTWARE\wow6432node\microsoft\jet\4.0\Engines\Excel
  3. Fare doppio clic suTypeGuessRows.
  4. NelModifica valore DWORDNella finestra di dialogo, fare clic suDecimaleNella casella di gruppoBase. Digitare un valore compreso tra 0 e 16, inclusi, perValoredati.
  5. Fare clic suOK, quindi chiudere l'Editor del Registro di sistema.
Un secondo modo per aggirare il problema (senza modificare il Registro di sistema) consiste nell'assicurarsi che le righe con i campi contenenti dati 255 caratteri o superiore, se sono presente nelle prime otto righe del file di dati di origine.

Informazioni

L'intervallo valido dei valori per ilTypeGuessRowsla chiave è 0 e 16. Tuttavia, se il valore è 0, il numero di righe di origine analizzati è 16384. Tenere presente che un valore pari a zero può causare prestazioni piccole se il file di origine è molto grande.

Procedura per riprodurre il problema

  1. Aprire una nuova cartella di lavoro di Microsoft Excel e creare un foglio con tre colonne e 11 righe e includere la prima riga con i nomi di colonna.
  2. Inserire i dati nelle celle in modo che le prime otto righe contengono dati inferiore a 255 caratteri in lunghezza.
  3. Inserimento dei dati sono maggiori di 255 caratteri nelle righe 10 e 11. Salvare questo foglio come ExcelSource.xls.
  4. Aprire SQL Server Enterprise Manager ed espandere il nome del Server. Pulsante destro del mouseData Transformation Services, quindi fare clic suDati dei importazione.
  5. Per l'origine, selezionare il provider di Excel 97-2000 e fornire il nome del foglio di Excel che è stato salvato precedente (ExcelSource.xls).
  6. Per selezionare la destinazioneProvider OLE DB Microsoft per SQL, quindi selezionare il database di destinazione.
  7. Fare clic suCopiare tabelle e viste dall'origine DB, quindi fare clic suSuccessivo.
  8. NelSelezionare le tabelle di origineFare clic sul pulsante nella finestra di dialogo select Sheet1$Successivo, quindi eseguire immediatamente il pacchetto. L'esecuzione del pacchetto ha esito negativo con il messaggio di errore riportato nella sezione "Sintomi".

  9. Eliminare la tabella $ Foglio1 dal database di destinazione utilizzando il comandoElimina tabella Sheet1$.
  10. Seguire la risoluzione nella sezione "Workaround" e apportare le modifiche alla chiave del Registro di sistema perTypeGuessRows.
  11. A questo punto, ripetere i passaggi 4 e 8. In questo caso l'esecuzione del pacchetto ha esito positivo.

I RIFERIMENTI

Per ulteriori informazioni su questo comportamento specifico di Microsoft Excel, fare clic sul numero dell'articolo della Microsoft Knowledge Base:
189897XL97: Dati troncati a 255 caratteri con Driver ODBC per Excel

Proprietà

Identificativo articolo: 281517 - Ultima modifica: sabato 5 febbraio 2011 - Revisione: 1.0
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Chiavi: 
kbjet kbprb kbmt KB281517 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 281517
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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