Microsoft distribuerar Microsoft SQL Server 2005, Microsoft SQL Server 2008 och Microsoft SQL Server 2008 R2-korrigeringar som en nedladdningsbar fil. Eftersom korrigeringarna är kumulativa innehåller varje ny utgåva alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare korrigeringsversionen för SQL Server 2005, Microsoft SQL Server 2008 eller SQL Server 2008 R2.
Symptom
Tänk dig följande scenario:
Du kör ett Microsoft SQL Server 2005, Microsoft SQL Server 2008 eller SQL Server 2008 R2 Integration Services package (SSIS) på en dator som har en av följande installationer i .NET Framework:
- .NET Framework 2.0 Service Pack 2 (SP2)
- .NET Framework 3.5 Service Pack 1 (SP1)
SSIS-paketet använder en ODBC-drivrutin från tredje part som importerar teckendata.
Men när du kör SSIS-paketet får du följande felmeddelanden:
Obs
[ADO NET Source [1424]] Fel: SSIS-felkod DTS_E_INDUCEDTRANSFORMFAILUREONERROR. "Komponenten "ADO NET Source" (1424)" misslyckades eftersom felkod 0x80131937 inträffade, och felradsdispositionen för "utdatakolumn "kolumnnamn" (tal)" anger fel vid fel. Ett fel uppstod på det angivna objektet för den angivna komponenten. Dessförinnan kan det finnas felmeddelanden med mer information om felet.
Fel 0xc0209029: Dataflöde Uppgift: "Komponenten "ComponentName" (1)" misslyckades eftersom felkod 0x80131937 inträffat...
[ADO NET Source [1424]] Fel: Komponenten "ADO NET Source" (1424) kunde inte bearbeta data. Pipelinekomponenten har returnerat HRESULT-felkod 0xC0209029 från ett metodanrop.
[SSIS. Pipeline]-fel: SSIS-felkod DTS_E_PRIMEOUTPUTFAILED. Metoden PrimeOutput på komponenten "ADO NET Source" (1424) returnerade felkod 0xC02090F5. Komponenten returnerade en felkod när pipelinemotorn anropade PrimeOutput(). Innebörden av felkoden definieras av komponenten, men felet är allvarligt och pipelinen slutade köras. Dessförinnan kan det finnas felmeddelanden med mer information om felet.
Det här problemet påverkar ODBC-drivrutiner som hanteras från den hanterade ODBC-leverantören om följande villkor är uppfyllda:
Funktionen ExecuteReader anropas av parametern CommandBehavior.SequentialAccess. Det här anropet och parametern används under följande omständigheter:
- När ett SQL Server 2005 SSIS-paket läser data från en DataReader-källa eller när ett SQL Server 2008 SSIS-paket läser data från en hanterad ADO.NET datakälla.
- Datakällan är inte konfigurerad för att omdirigera fel- och trunkeringsvärden.
Funktionen OdbcDataReader.IsDbNull anropas. SSIS-paketet använder den här metoden för att avgöra om värdet i ett fält är NULL eller inte.
En av följande funktioner anropas:
- Funktionen OdbcDataReader.GetBytes anropas för att hämta vissa datatyper, till exempel DT_BYTES, från den hanterade ODBC-leverantören.
- Funktionen OdbcDataReader.GetChars anropas för att hämta vissa strängdatatyper, till exempel DT_WSTR, från den hanterade ODBC-leverantören.
Orsak
.NET Framework 2.0 SP2 och .NET Framework 3.5 SP1 introducerar en ändring i den hanterade ODBC-providern genom vilken strängar läses från den interna ODBC-drivrutinen i det scenario som beskrivs i avsnittet "Symptom". På grund av den här ändringen använder den hanterade ODBC-providern som anropas i den interna ODBC-drivrutinen med hjälp av SQLGetData API-funktionen en buffert med storlek 0. Kompatibla ODBC-drivrutiner har inga problem i det här anropet. Men inkompatibla ODBC-drivrutiner kan misslyckas under dessa omständigheter. För en kompatibel ODBC-drivrutin returnerar SQLGetData API-funktionen SUCCESS_WITH_INFO när en buffert med storleken 0 identifieras. För en inkompatibel ODBC-drivrutin returnerar anropet NO_DATA.
Lösning
Information om snabbkorrigeringar
En snabbkorrigering som stöds är tillgänglig från Microsoft. Den här snabbkorrigeringen är dock endast avsedd att åtgärda det problem som beskrivs i den här artikeln. Använd endast den här snabbkorrigeringen på system som har det här specifika problemet. Den här snabbkorrigeringen kan testas ytterligare. Om du inte påverkas allvarligt av det här problemet rekommenderar vi därför att du väntar på nästa programuppdatering som innehåller den här snabbkorrigeringen.
Om snabbkorrigeringen är tillgänglig för hämtning finns avsnittet "Nedladdning av snabbkorrigering" längst upp i den här Knowledge Base-artikeln. Om det här avsnittet inte visas kontaktar du Microsofts kundtjänst och support för att hämta snabbkorrigeringen.
Om ytterligare problem uppstår eller om felsökning krävs kan du behöva skapa en separat tjänstbegäran. Normala supportkostnader tillkommer för ytterligare supportfrågor och problem som inte kvalificerar sig för den här specifika snabbkorrigeringen. En fullständig lista över telefonnummer till Microsofts kundtjänst och support eller om du vill skapa en separat servicebegäran finns på följande Microsoft-webbplats:
http://support.microsoft.com/contactus/?ws=support Obs! Formuläret "Nedladdning av snabbkorrigering tillgänglig" visar de språk som snabbkorrigeringen är tillgänglig för. Om ditt språk inte visas beror det på att det inte finns någon snabbkorrigering för det språket.
Krav
Du måste ha .NET Framework 2.0 Service Pack 2 installerat.
Information om omstart
Du behöver inte starta om datorn efter att du har installerat snabbkorrigeringen.
Registerinformation
Du behöver inte ändra registret.
Filinformation för snabbkorrigering
Den här snabbkorrigeringen innehåller endast de filer som behövs för att korrigera de problem som beskrivs i den här artikeln. Den här snabbkorrigeringen kanske inte innehåller alla filer som krävs för att kunna uppdatera en produkt till den senaste versionen. Den engelska versionen av den här snabbkorrigeringen har filattributen (eller senare filattribut) som listas i följande tabell. Datumen och tiderna för dessa filer anges i Coordinated Universal Time (UTC). När du visar filinformationen konverteras den till lokal tid. Om du vill hitta skillnaden mellan UTC och lokal tid använder du fliken Tidszon i objektet Datum och tid på kontrollpanelen.
.NET Framework 2.0 för Windows 2000, Windows Server 2003, Windows XP, 32-bitarsversioner
| Filnamn | Filversion | Filstorlek | Datum | Tid | Plattform |
|---|---|---|---|---|---|
| System.data.dll | 2.0.50727.4063 | 2,933,760 | 19- | 05:08 | x86 |
.NET Framework 2.0 för Windows 2000, Windows Server 2003, Windows XP, x64-versioner
| Filnamn | Filversion | Filstorlek | Datum | Tid | Plattform |
|---|---|---|---|---|---|
| System.data.dll | 2.0.50727.4063 | 3,008,512 | 18- | 23:51 | x64 |
| System.data.dll | 2.0.50727.4063 | 2,933,760 | 19- | 05:08 | x86 |
.NET Framework 2.0 för Windows 2000, Windows Server 2003, Windows XP, IA-64 versioner
| Filnamn | Filversion | Filstorlek | Datum | Tid | Plattform |
|---|---|---|---|---|---|
| System.data.dll | 2.0.50727.4063 | 2,933,760 | 19- | 05:08 | x86 |
| System.data.dll | 2.0.50727.4063 | 3,234,816 | 19- | 01:09 | IA-64 |
.NET Framework 2.0 för Windows Vista, Windows Server 2008, 32-bitarsversioner
| Filnamn | Filversion | Filstorlek | Datum | Tid |
|---|---|---|---|---|
| System.data.dll | 2.0.50727.4400 | 2,933,760 | 10-sep-2009 | 11:54 |
.NET Framework 2.0 för Windows Vista, Windows Server 2008, x64-versioner
| Filnamn | Filversion | Filstorlek | Datum | Tid |
|---|---|---|---|---|
| System.data.dll | 2.0.50727.4400 | 3,008,512 | 10-sep-2009 | 11:54 |
.NET Framework 2.0 för Windows Vista, Windows Server 2008, IA-64-versioner
| Filnamn | Filversion | Filstorlek | Datum | Tid |
|---|---|---|---|---|
| System.data.dll | 2.0.50727.4400 | 3,234,816 | 10-sep-2009 | 11:54 |
Lösning
Använd någon av följande metoder för att kringgå det här problemet.
Metod 1
Redigera SSIS-paketet för att konfigurera omdirigering av fel och trunkering på DataReader källan eller på den hanterade ADO.NET datakällan. När du har redigerat SSIS-paketet för att omdirigera felresultatet till ett mål kommer paketet att köras korrekt även om inga rader skrivs till målet. Följ anvisningarna nedan.
Obs! Följande steg förutsätter att du använder ett SQL Server 2005 SSIS-paket som läser data från en DataReader-källa.
Öppna SSIS-paketet i SQL Server Business Intelligence Development Studio.
Öppna dialogrutan Avancerad redigerare för DataReader-källa i Dataflöde Designer.
Klicka på fliken Indata- och utdataegenskaper och expandera sedan noden DataReader-utdata i trädet Indata och utdata .
Expandera noden Utdatakolumner .
Klicka på varje kolumn under noden Utdatakolumner och undersök sedan egenskapen DataType. Redigera följande två egenskaper för varje kolumn vars DataType-egenskap är DT_WSTR, DT_NTEXT, DT_BYTES eller DT_IMAGE:
- Ange egenskapen ErrorRowDisposition till RD_RedirectRow.
- Ange egenskapen TrunkeringDisposition till RD_RedirectRow.
Spara ändringarna genom att klicka på OK.
Lägg till ett nytt mål i Dataflöde designer. Lägg till exempel till ett platt filmål eller ett SQL Server mål.
Använd den röda pilen från DataReader-källan för att ansluta den till det nyligen tillagda målet. Den här åtgärden dirigerar felraderna och trunkeringsraderna till målet för att spara felraderna.
Upprepa steg 1 till 8 för alla Dataflöde uppgifter som använder ODBC-sträng- eller bildkolumner och som misslyckas med felmeddelandena som nämns i avsnittet "Symptom".
Metod 2
Avinstallera .NET Framework 2.0 SP2 eller .NET Framework 3.5 SP1. Vi rekommenderar dock att du inte avinstallerar en Service Pack, eftersom detta offrar de förbättringar av tillförlitlighet, funktioner och prestanda som Service Pack erbjuder.
Så här återställer du systemet till det tillstånd det var innan du installerade .NET Framework 2.0 SP2 eller .NET Framework 3.5 SP1:
Dubbelklicka på Lägg till eller ta bort program på Kontrollpanelen.
Leta reda på Microsoft .NET Framework 3.5 SP1 och avinstallera det.
Leta reda på Microsoft .NET Framework 3.0 SP2 och avinstallera det.
Leta reda på Microsoft .NET Framework 2.0 SP2 och avinstallera det.
Installera om den ursprungliga versionen av .NET Framework 3.5. Det här steget installerar om .NET Framework 2.0 SP1 och .NET Framework 3.0 SP1. Du kan hämta .NET Framework 3.5 på följande Microsoft-webbplats:
http://www.microsoft.com/download/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=sv
Förfarande 3
Kontakta leverantören av ODBC-drivrutinen från tredje part för att avgöra om leverantören har en uppdatering för drivrutinen för att lösa problemet.
Status
Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".