PRB: Übertragung von Daten aus der Quelle der Jet-4.0LEDB schlägt mit Puffer-Überlauf-Fehler

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 281517 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Wenn Sie Daten aus einer Datenquelle Jet OLEDB 4.0 mithilfe von Data Transformation Services (DTS) und Microsoft OLE DB Provider für Jet importieren, kann der Datapumptask mit dieser Fehlermeldung fehlschlagen:
"Fehler in der Quelle für Zeile Nummer 9.exe Fehler, die bisher in dieser Aufgabe: 1"
Allgemeiner Fehler:-2147217887(80040E21)
Daten für Quellspalte 3('Col3') ist zu groß für die angegebene Puffergröße.
Wenn die Quelle Felder mit mehr als 255 Zeichen aufweist, können die Zieldaten für diese Felder auf 255 Zeichen abgeschnitten. DTS kann nicht auf die erste Zeile, die ein Feld mit mehr als 255 Zeichen enthält. Um dies zu überprüfen, schlagen Sie die Nummer der Zeile, die in den Fehlermeldung anzeigt.

Ursache

Der Jet OLE DB-Anbieter liest einen Registrierungsschlüssel, um zu ermitteln, wie viele Zeilen gelesen werden, um den Typ der Quellspalte zu erraten. Die Registrierungseinstellung ist:

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

Standardmäßig ist der Wert für diesen Schlüssel 8. Der Provider untersucht daher die ersten 8 Zeilen von der Quelldaten für die Datentypen der Spalten bestimmen. Wenn Text und die Länge jedes Feld aussieht Daten mehr als 255 Zeichen ist, wird die Spalte als ein Memo-Feld eingegeben. So sind keine Daten mit einer Länge größer als 255 Zeichen in den ersten acht Zeilen des Quellcodes, Jet genau die Art des Datentyps bestimmen kann.

Abhilfe

WichtigIn diesem Abschnitt, eine Methode oder eine Aufgabe enthält Hinweise zum Ändern der Registrierung. Allerdings können schwerwiegende Probleme verursachen, wenn Sie die Registrierung falsch ändern. Stellen Sie daher sicher, dass Sie die folgenden Schritte sorgfältig ausführen. Für zusätzlichen Schutz sichern Sie die Registrierung, bevor Sie es ändern. Anschließend können Sie die Registrierung wiederherstellen, wenn ein Problem auftritt. Weitere Informationen zum Sichern und Wiederherstellen der Registrierungs finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
322756Zum Sichern und Wiederherstellen der Registrierung in Windows

So ändern Sie den Wert desTypeGuessRows, gehen Sie folgendermaßen vor:
  1. Auf derStartMenü, klicken Sie aufAusführen. In derAusführenim Dialogfeld TypRegedt32, und klicken Sie dann aufOK.
  2. Öffnen Sie im Registrierungseditor den folgenden Schlüssel:

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

    HinweisFür 64-Bit-Systemen ist der entsprechende Schlüssel wie folgt:

    HKLM\SOFTWARE\wow6432node\microsoft\jet\4.0\Engines\Excel
  3. Doppelklicken Sie aufTypeGuessRows.
  4. In derDWORD-editorim Dialogfeld klicken Sie aufDecimalKlicken Sie unterBase. Geben Sie einen Wert zwischen 0 und 16 für einWertDaten.
  5. Klicken Sie aufOK, und beenden Sie den Registrierungs-Editor.
Eine zweite Möglichkeit, dieses Problem zu umgehen (ohne Ändern der Registrierung), stellen Sie sicher, dass mit Feldern, die Zeilen mit Daten 255 Zeichen oder größer ist, in den ersten acht Zeilen der Quelldatei Daten vorhanden sind.

Weitere Informationen

Der gültige Wertebereich für dieTypeGuessRowsSchlüssel ist 0 bis 16. Wenn der Wert 0 ist, ist die Anzahl der gescannten Quellzeilen 16384. Denken Sie daran, die ein Wert von 0 (null) einen kleinen Leistungseinbruch verursachen bei sehr großen Quelldatei beibehalten.

Schritte zum Reproduzieren des Problems

  1. Öffnen Sie eine neue Microsoft Excel-Arbeitsmappe und erstellen Sie ein Blatt mit 11 Zeilen und drei Spalten enthalten Sie die erste Zeile mit Spaltennamen.
  2. Einfügen von Daten in die Zellen so, dass die ersten 8 Zeilen Daten Länge weniger als 255 Zeichen enthalten.
  3. Einfügen von Daten, die größer als 255 Zeichen in den Zeilen bis elften ist. Speichern Sie dieses Blatt als ExcelSource.xls.
  4. Öffnen Sie SQL Server Enterprise Manager, und erweitern Sie den Servernamen. Mit der rechten MaustasteData Transformation Services, und klicken Sie dann aufDaten importieren.
  5. Wählen Sie für die Quelle den Excel 97-2000-Anbieter aus, und geben Sie den Namen für das Excel-Arbeitsblatt, die Sie früher (ExcelSource.xls) gespeichert.
  6. Die Ziel-SELECTMicrosoft OLE DB-Provider für SQL, und wählen Sie die Zieldatenbank.
  7. Klicken Sie aufTabellen und Sichten aus der Quelldatenbank kopieren, und klicken Sie dann aufWeiter.
  8. In derQuelltabellen auswählenKlicken Sie im Dialogfeld select Sheet1$,Weiter, und führen Sie das Paket sofort. Die Paketausführung schlägt mit der Fehlermeldung im Abschnitt "Problembeschreibung" angezeigt.

  9. Löschen Sie die Tabelle Sheet1$ aus der Zieldatenbank mithilfe des BefehlsDrop Table Sheet1$.
  10. Befolgen Sie die Auflösung im Abschnitt "Abhilfe" und nehmen Sie die Änderung des Registrierungsschlüssels fürTypeGuessRows.
  11. Nun, wiederholen Sie die Schritte 4 bis 8. Diesmal ist die Ausführung des Pakets erfolgreich.

REFERENZEN

Weitere Informationen zu diesem Verhalten, die speziell für Microsoft Excel finden Sie in folgendem Artikel der Microsoft Knowledge Base anzuzeigen:
189897XL97: Daten gekürzt werden, auf 255 Zeichen mit Excel-ODBC-Treiber

Eigenschaften

Artikel-ID: 281517 - Geändert am: Samstag, 5. Februar 2011 - Version: 1.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Keywords: 
kbjet kbprb kbmt KB281517 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 281517
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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