FIX: Foutbericht wanneer u een pakket SQL Server 2005, SQL Server 2008 of SQL Server 2008 R2 Integration Services (SSIS) na de installatie van .NET Framework 2.0 SP2 of .NET Framework 3.5 SP1 uitvoert: 'ADO NET Source [1424]'

Van toepassing: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Developer EditionMicrosoft SQL Server 2005 Enterprise Edition

Microsoft distribueert Microsoft SQL Server 2005, Microsoft SQL Server 2008 en Microsoft SQL Server 2008 R2 worden opgelost als één downloadbaar bestand. Aangezien de oplossingen cumulatief zijn, elke nieuwe versie bevat alle hotfixes en de beveiligingscorrecties die opgenomen in de vorige SQL Server 2005, Microsoft SQL Server 2008 of SQL Server 2008 R2 zijn release opgelost.

Symptomen


Overweeg het volgende scenario:
  • U kunt een pakket Microsoft SQL Server 2005, Microsoft SQL Server 2008 of SQL Server 2008 R2 Integration Services (SSIS) uitvoeren op een computer waarop een van de volgende .NET Framework-installaties:
    • .NET Framework 2.0 servicepack 2 (SP2)
    • Het .NET Framework 3.5 servicepack 1 (SP1)
  • Het pakket SSIS maakt gebruik van een ODBC-stuurprogramma van derden dat de invoer van alfanumerieke gegevens.
Wanneer u het pakket SSIS uitvoert, wordt u de volgende foutberichten weergegeven:
[ADO NET bron [1424]] Fout: SSIS-foutcode DTS_E_INDUCEDTRANSFORMFAILUREONERROR. De "component"ADO NET bron"(1424)" is mislukt omdat de foutcode 0x80131937 is opgetreden en de vernietiging van de rij fout op "uitvoerkolom"kolomnaam"(nummer)" geeft een fout op fout. Er is een fout opgetreden op het opgegeven object van het opgegeven onderdeel. Is er mogelijk foutberichten die zijn geboekt vóór dit met meer informatie over de fout.

Fout 0xc0209029: Data Flow taak: de "component"NaamOnderdeel"(1)' is mislukt, omdat de opgetreden foutcode 0x80131937...

[ADO NET bron [1424]] Fout: Het onderdeel 'ADO NET Source' (1424) is niet op de gegevens. Pijplijncomponent heeft HRESULT foutcode 0xC0209029 geretourneerd uit een aanroep van de methode.

[SSIS. Pipeline] Fout: foutcode SSIS DTS_E_PRIMEOUTPUTFAILED. De methode PrimeOutput op het onderdeel 'ADO NET Source' (1424) geretourneerde foutcode 0xC02090F5. Het onderdeel heeft een foutcode geretourneerd wanneer de motor pijpleiding PrimeOutput() aangeroepen. De betekenis van de foutcode wordt gedefinieerd door het onderdeel, maar de fout fatale en uitvoeren van de pijpleiding is gestopt. Is er mogelijk foutberichten die zijn geboekt vóór dit met meer informatie over de fout.
Dit probleem is van invloed op ODBC-stuurprogramma's die vanuit de beheerde provider voor ODBC-wanneer de volgende voorwaarden voldaan wordt:
  • De functie ExecuteReader wordt aangeroepen met de parameter CommandBehavior.SequentialAccess . Deze aanroep en de parameter worden gebruikt in de volgende omstandigheden:
    • Wanneer een pakket van SQL Server 2005 SSIS leest gegevens van een bron DataReader of wanneer een SQL Server 2008 SSIS-pakket gegevens uit een beheerde ADO.NET-gegevensbron leest.
    • De gegevensbron is niet geconfigureerd voor het omleiden van de waarden van de fout en moet worden afgekapt.
  • De functie OdbcDataReader.IsDbNull wordt aangeroepen. Het pakket SSIS gebruikt deze methode om te bepalen of de waarde in een veld NULL of niet is.
  • Een van de volgende functies wordt genoemd:
    • De functie OdbcDataReader.GetBytes aangeroepen om bepaalde gegevenstypen, zoals DT_BYTES, verkrijgen van de beheerde provider voor ODBC.
    • De functie OdbcDataReader.GetChars aangeroepen om bepaalde gegevenstypen tekenreeks zoals DT_WSTR, van de beheerde provider voor ODBC-verkrijgen.

Oorzaak


.NET Framework 2.0 SP2 en .NET Framework 3.5 SP1 leiden tot een wijziging in de beheerde ODBC provider waarmee reeksen van de native ODBC-stuurprogramma in het scenario dat is beschreven in de sectie 'Symptomen' worden gelezen. Door deze wijziging wordt de beheerde ODBC provider die wordt genoemd in de native ODBC-stuurprogramma met behulp van de API-functie SQLGetData een buffergrootte van 0. Compatibel is met ODBC-stuurprogramma's bevatten geen problemen in dit gesprek. Niet-compatibele ODBC-stuurprogramma's kunnen echter niet onder deze omstandigheden. Voor een ODBC-stuurprogramma compatibel is retourneert de functie SQLGetData API SUCCESS_WITH_INFO bij een buffergrootte van 0 wordt gedetecteerd. Voor een niet-compatibele ODBC-stuurprogramma retourneert de aanroep NO_DATA.

Oplossing


Informatie over de hotfix

Een ondersteunde hotfix is beschikbaar bij Microsoft. Deze hotfix is echter alleen bedoeld voor het probleem dat wordt beschreven in dit artikel. Voer deze hotfix alleen uit op systemen waarop dit specifieke probleem zich voordoet. Deze hotfix moet wellicht extra worden getest. Als u geen ernstige hinder ondervindt van dit probleem, is het daarom raadzaam te wachten op de volgende update waarin deze hotfix is opgenomen.

Als de hotfix gedownload kan worden, is er een sectie 'Hotfix downloaden' aan het begin van dit Knowledge Base-artikel. Als deze sectie niet wordt weergegeven, neem dan contact op met Microsoft Customer Service and Support om de hotfix te verkrijgen.

Opmerking Als er andere problemen optreden of als probleemoplossing is vereist, moet u wellicht een apart serviceverzoek indienen. De normale ondersteuningskosten gelden voor extra ondersteuningsvragen en problemen die niet in aanmerking komen voor deze specifieke hotfix. Voor een volledige lijst met telefoonnummers van Microsoft Customer Service and Support of een afzonderlijk serviceverzoek maken, gaat u naar de volgende Microsoft-website:Opmerking Het formulier 'Hotfix kan worden gedownload' geeft de talen weer waarvoor de hotfix beschikbaar is. Als uw taal niet wordt weergegeven, is dit omdat een hotfix niet voor die taal beschikbaar is.

Vereisten

U moet .NET Framework 2.0 Service Pack 2 hebben.

Opstartinformatie

U hoeft de computer niet opnieuw op te starten nadat u deze hotfix hebt toegepast.

Informatie over het register

U hoeft niet te wijzigen van het register.

Informatie over hotfixbestanden

Deze hotfix bevat alleen de bestanden die nodig zijn om de problemen verhelpen die in dit artikel worden vermeld. Deze hotfix bevat mogelijk niet alle bestanden die u hebt nodig om een product volledig bijwerken naar de laatste build. Van de Engelse versie van deze hotfix heeft de bestandskenmerken (of recentere bestandskenmerken) die in de volgende tabel worden weergegeven. De datums en tijden voor deze bestanden worden weergegeven in Coordinated Universal Time (UTC). Wanneer u de bestandsinformatie weergeeft, wordt deze naar lokale tijd geconverteerd. Om het verschil tussen UTC en lokale tijd, gebruikt u het tabblad tijdzone in het onderdeel datum en tijd in het Configuratiescherm.
.NET framework 2.0 voor Windows 2000, Windows Server 2003, Windows XP, 32-bits versies
BestandsnaamBestandsversieBestandsgrootteDatumTijdPlatform
System.data.dll2.0.50727.40632,933,76019-05:08x86
.NET framework 2.0 voor Windows 2000, Windows Server 2003, Windows XP x64 versies
BestandsnaamBestandsversieBestandsgrootteDatumTijdPlatform
System.data.dll2.0.50727.40633,008,51218-23:51x64
System.data.dll2.0.50727.40632,933,76019-05:08x86
.NET framework 2.0 voor Windows 2000, Windows Server 2003, Windows XP, IA-64-versies
BestandsnaamBestandsversieBestandsgrootteDatumTijdPlatform
System.data.dll2.0.50727.40632,933,76019-05:08x86
System.data.dll2.0.50727.40633,234,81619-01:09IA-64
.NET framework 2.0 voor Windows Vista, Windows Server 2008, 32-bits versies
BestandsnaamBestandsversieBestandsgrootteDatumTijd
System.data.dll2.0.50727.44002,933,76010-Sep-200911:54
.NET framework 2.0 voor Windows Vista, Windows Server 2008, x64 versies
BestandsnaamBestandsversieBestandsgrootteDatumTijd
System.data.dll2.0.50727.44003,008,51210-Sep-200911:54
.NET framework 2.0 voor Windows Vista, Windows Server 2008, IA-64-versies
BestandsnaamBestandsversieBestandsgrootteDatumTijd
System.data.dll2.0.50727.44003,234,81610-Sep-200911:54

Tijdelijke oplossing


U kunt dit probleem omzeilen door één van de volgende methoden te gebruiken.

Methode 1

De SSIS-pakket om de fout en omleiding van PST-bestanden op de bron DataReader of op de beheerde ADO.NET-gegevensbron bewerken. Nadat u het pakket SSIS wilt omleiden van de uitvoer van foutmeldingen naar een bestemming kunt bewerken, wordt het pakket uitgevoerd zelfs als er geen rijen zijn geschreven naar de bestemming. Ga hiervoor als volgt te werk.

Opmerking De volgende stappen wordt aangenomen dat u een pakket van SQL Server 2005 SSIS die gegevens uit een bron DataReader ophaalt.
  1. Open het pakket SSIS in SQL Server Business Intelligence Development Studio.
  2. Open het dialoogvenster Geavanceerde Editor voor DataReader bron in de ontwerper van de gegevensstroom.
  3. Klik op het tabblad invoer en uitvoer eigenschappen en vouw het knooppunt DataReader uitvoer in de structuur van de ingangen en uitgangen .
  4. Vouw het knooppunt Uitvoerkolommen .
  5. Klik op elke kolom onder het knooppunt Uitvoerkolommen en controleer de eigenschap DataType . Voor elke kolom waarvan het gegevenstype is DT_WSTR, DT_NTEXT, DT_BYTES of DT_IMAGE, de volgende twee eigenschappen bewerken:
    • De eigenschap ErrorRowDisposition ingesteld op RD_RedirectRow.
    • De eigenschap TruncationRowDisposition ingesteld op RD_RedirectRow.
  6. Klik op OK om de wijzigingen opslaan.
  7. In de ontwerpfunctie voor gegevensstroomdiagrammen, toevoegen van een nieuwe bestemming. Bijvoorbeeld een plat bestand bestemming of de bestemming van een SQL-Server toevoegen.

  8. De rode pijl van de bron DataReader gebruiken verbinding maakt met de nieuwe bestemming. Deze bewerking wordt de fout rijen en rijen van PST-bestanden naar de bestemming rechtstreeks opslaan als de rijen met fouten.

  9. Herhaal stap 1 tot en met 8 voor alle taken gegevensstroom die access ODBC-tekenreeks of image-kolommen en die niet met de foutberichten die worden vermeld in de sectie 'Symptomen'.

Methode 2

Verwijder .NET Framework 2.0 SP2 of .NET Framework 3.5 SP1. Echter niet aangeraden omdat dit offert de betrouwbaarheid, functie verbeteringen en prestatieverbeteringen die het servicepack biedt een servicepack te verwijderen.



Als u wilt het systeem herstellen in de staat waarin deze zich bevond voordat u .NET Framework 2.0 SP2 of .NET Framework 3.5 SP1 hebt geïnstalleerd, als volgt te werk:
  1. Dubbelklik op Softwarein het Configuratiescherm.
  2. Ga naar Microsoft.NET Framework 3.5 SP1 en verwijdert u het.
  3. Ga naar Microsoft .NET Framework 3.0 SP2 en verwijdert u het.
  4. Ga naar Microsoft .NET Framework 2.0 SP2 en verwijdert u het.
  5. De oorspronkelijke release van .NET Framework 3.5 installeren. Deze stap wordt het .NET Framework 2.0 SP1 en .NET Framework 3.0 SP1 opnieuw. Als u .NET Framework 3.5, gaat u naar de volgende Microsoft-website:

Methode 3

Neem contact op met de leverancier van het ODBC-stuurprogramma van derden om te bepalen of de leverancier heeft een update voor dit probleem oplossen door het stuurprogramma.

Status


Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.