KB969845 – LØSNING: Feilmelding når du kjører en SQL Server 2005, SQL Server 2008 eller SQL Server 2008 R2 Integration Services-pakke (SSIS) etter at du har installert .NET Framework 2.0 SP2 eller .NET Framework 3.5 SP1: «ADO NET Source [1424]»

Gjelder for
Microsoft SQL Server 2005 Standard Edition Microsoft SQL Server 2005 Developer Edition Microsoft SQL Server 2005 Enterprise Edition Microsoft SQL Server 2005 Standard X64 Edition Microsoft SQL Server 2005 Enterprise X64 Edition Microsoft SQL Server 2005 Workgroup Edition SQL Server 2008 Standard SQL Server 2008 Standard Edition for Small Business SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Workgroup SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup

Microsoft distribuerer feilrettinger for Microsoft SQL Server 2005, Microsoft SQL Server 2008 og Microsoft SQL Server 2008 R2 som én nedlastbar fil. Fordi rettelsene er kumulative, inneholder hver nye versjon alle hurtigreparasjoner og alle sikkerhetsrettelser som var inkludert i den forrige SQL Server 2005-, Microsoft SQL Server 2008- eller SQL Server 2008 R2-utgivelsen.

Symptomer

Tenk deg følgende:

  • Du kjører en Microsoft SQL Server 2005-, Microsoft SQL Server 2008- eller SQL Server 2008 R2 Integration Services-pakke (SSIS) på en datamaskin som har en av følgende installasjoner av .NET Framework:

    • .NET Framework 2.0 Service Pack 2 (SP2)
    • .NET Framework 3.5 Service Pack 1 (SP1)
  • SSIS-pakken bruker en tredjeparts ODBC-driver som importerer tegndata.

Når du kjører SSIS-pakken, får du imidlertid følgende feilmeldinger:

Obs!

[ADO NET Source [1424]] Feil: SSIS-feilkode DTS_E_INDUCEDTRANSFORMFAILUREONERROR. Komponenten «ADO NET Source» (1424)» mislyktes fordi feilkode 0x80131937 oppstod, og fjerningen av feilraden på «utdatakolonnen «kolonnenavn» (tall)» angir feil ved feil. Det oppstod en feil på det angitte objektet for den angitte komponenten. Det kan finnes feilmeldinger lagt inn før dette med mer informasjon om feilen.

Feil 0xc0209029: Dataflyt oppgave: Komponenten «komponentnavn» (1)» mislyktes fordi feilkode 0x80131937 oppstått ...

[ADO NET Source [1424]] Feil: Komponenten «ADO NET Source» (1424) kunne ikke behandle dataene. Pipelinekomponenten returnerte HRESULT-feilkode 0xC0209029 fra et metodekall.

[SSIS. Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. PrimeOutput-metoden på komponenten "ADO NET Source" (1424) returnerte feilkode 0xC02090F5. Komponenten returnerte en feilkode når pipelinemotoren kalte PrimeOutput(). Betydningen av feilkoden defineres av komponenten, men feilen er fatal, og pipelinen sluttet å kjøre. Det kan finnes feilmeldinger lagt inn før dette med mer informasjon om feilen.

Dette problemet påvirker ODBC-drivere som er tilgjengelig fra den administrerte ODBC-leverandøren, når følgende vilkår er oppfylt:

  • ExecuteReader-funksjonen kalles opp av parameteren CommandBehavior.SequentialAccess. Dette kallet og parameteren brukes under følgende omstendigheter:

    • Når en SQL Server 2005 SSIS-pakke leser data fra en DataReader-kilde, eller når en SQL Server 2008 SSIS-pakke leser data fra en forvaltet ADO.NET datakilde.
    • Datakilden er ikke konfigurert til å omadressere verdiene for feil og avkorting.
  • Funksjonen OdbcDataReader.IsDbNull kalles. SSIS-pakken bruker denne metoden til å fastslå om verdien i et felt er NULL eller ikke.

  • Én av følgende funksjoner kalles:

    • OdbcDataReader.GetBytes-funksjonen kalles for å hente bestemte datatyper, for eksempel DT_BYTES, fra den forvaltede ODBC-leverandøren.
    • OdbcDataReader.GetChars-funksjonen kalles opp for å hente bestemte strengdatatyper, for eksempel DT_WSTR, fra den forvaltede ODBC-leverandøren.

Årsak

.NET Framework 2.0 SP2 og .NET Framework 3.5 SP1 introduserer en endring i den administrerte ODBC-leverandøren, der strenger leses fra den opprinnelige ODBC-driveren i scenarioet som er beskrevet i delen «Symptomer». På grunn av denne endringen bruker den administrerte ODBC-leverandøren som kalles i den opprinnelige ODBC-driveren ved hjelp av SQLGetData API-funksjonen, en buffer med størrelse 0. Kompatible ODBC-drivere har ikke problemer i dette kallet. ODBC-drivere som ikke er kompatible, kan imidlertid mislykkes under disse omstendighetene. For en kompatibel ODBC-driver returnerer SQLGetData API-funksjonen SUCCESS_WITH_INFO når en buffer med størrelse 0 oppdages. For en ikke-kompatibel ODBC-driver returnerer kallet NO_DATA.

Oppløsning

Informasjon om hurtigreparasjoner

En støttet hurtigreparasjon er tilgjengelig fra Microsoft. Denne hurtigreparasjonen er imidlertid bare ment å løse problemet som er beskrevet i denne artikkelen. Bruk denne hurtigreparasjonen bare på systemer som har dette bestemte problemet. Denne hurtigreparasjonen kan underkastes ytterligere testing. Derfor anbefaler vi at du venter på neste programvareoppdatering som inneholder denne hurtigreparasjonen, hvis du ikke opplever dette problemet.

Hvis hurtigreparasjonen er tilgjengelig for nedlasting, finnes det en "Hurtigreparasjonsnedlasting tilgjengelig" øverst i denne Knowledge Base-artikkelen. Hvis denne delen ikke vises, kontakter du Microsofts kundeservice og kundestøtte for å få hurtigreparasjonen.

Obs! Hvis det oppstår flere problemer eller hvis feilsøking kreves, må du kanskje opprette en egen serviceforespørsel. De vanlige støttekostnadene gjelder for flere kundestøttespørsmål og problemer som ikke kvalifiserer for denne bestemte hurtigreparasjonen. Gå til følgende Microsoft-webområde for å vise en fullstendig liste over telefonnumre for Microsofts kundeservice og kundestøtte eller opprette en separat serviceforespørsel:

http://support.microsoft.com/contactus/?ws=support Obs! Skjemaet «Hurtigreparasjonsnedlasting tilgjengelig» viser språkene som hurtigreparasjonen er tilgjengelig for. Hvis du ikke ser språket ditt, er det fordi en hurtigreparasjon ikke er tilgjengelig for dette språket.

Forutsetninger

Du må ha .NET Framework 2.0 Service Pack 2 installert.

Informasjon om omstart

Du trenger ikke å starte datamaskinen på nytt når du har installert denne hurtigreparasjonen.

Registerinformasjon

Du trenger ikke å endre registeret.

Informasjon om hurtigreparasjonsfil

Denne hurtigreparasjonen inneholder bare de filene som er nødvendige for å rette problemene som beskrives i denne artikkelen. Denne hurtigreparasjonen inneholder kanskje ikke alle filene du trenger for å kunne oppdatere et produkt fullstendig til den nyeste versjonen. Den engelske versjonen av denne hurtigreparasjonen har filattributtene (eller nyere filattributter) som er oppført i tabellen nedenfor. Datoene og klokkeslettene for disse filene er oppført i Coordinated Universal Time (UTC). Når du viser filinformasjonen, konverteres den til lokal tid. Hvis du vil finne forskjellen mellom UTC og lokal tid, bruker du Tidssone-fanen i dato- og klokkeslettelementet i Kontrollpanel.

.NET Framework 2.0 for Windows 2000, Windows Server 2003, Windows XP, 32-biters versjoner

Filnavn Filversjon Filstørrelse Dato Klokkeslett Plattform
System.data.dll 2.0.50727.4063 2,933,760 19- 05:08 x86

.NET Framework 2.0 for Windows 2000, Windows Server 2003, Windows XP, x64-versjoner

Filnavn Filversjon Filstørrelse Dato Klokkeslett 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 for Windows 2000, Windows Server 2003, Windows XP, IA-64-versjoner

Filnavn Filversjon Filstørrelse Dato Klokkeslett 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 for Windows Vista og Windows Server 2008, 32-biters versjoner

Filnavn Filversjon Filstørrelse Dato Klokkeslett
System.data.dll 2.0.50727.4400 2,933,760 10-sep-2009 11:54

.NET Framework 2.0 for Windows Vista, Windows Server 2008, x64-versjoner

Filnavn Filversjon Filstørrelse Dato Klokkeslett
System.data.dll 2.0.50727.4400 3,008,512 10-sep-2009 11:54

.NET Framework 2.0 for Windows Vista, Windows Server 2008, IA-64-versjoner

Filnavn Filversjon Filstørrelse Dato Klokkeslett
System.data.dll 2.0.50727.4400 3,234,816 10-sep-2009 11:54

Midlertidig løsning

Bruk en av følgende metoder for å omgå dette problemet.

Metode 1

Rediger SSIS-pakken for å konfigurere omadressering av feil og avkorting på DataReader-kilden eller på den forvaltede ADO.NET datakilden. Når du har redigert SSIS-pakken for å omdirigere feilutdataene til et mål, kjøres pakken selv om ingen rader skrives til målet. Dette gjør du ved å følge disse trinnene:

Obs! Følgende trinn forutsetter at du bruker en SQL Server 2005 SSIS-pakke som leser data fra en dataleserkilde.

  1. Åpne SSIS-pakken i SQL Server Business Intelligence Development Studio.

  2. Åpne dialogboksen avansert redigering for DataReader-kilde i Dataflyt-utformingen.

  3. Klikk på fanen Egenskaper for inndata og utdata , og utvid deretter DataReader-utdatanoden i inndata- og utdata-treet .

  4. Utvid noden Utdatakolonner .

  5. Klikk hver kolonne under noden Utdatakolonner , og undersøk deretter DataType-egenskapen. Rediger følgende to egenskaper for hver kolonne der DataType-egenskapen er DT_WSTR, DT_NTEXT, DT_BYTES eller DT_IMAGE:

    • Angi ErrorRowDisposition-egenskapen til RD_RedirectRow.
    • Angi TruncationRowDisposition-egenskapen til RD_RedirectRow.
  6. Klikk OK for å lagre endringene.

  7. Legg til et nytt mål i Dataflyt-utformingen. Du kan for eksempel legge til et flatt filmål eller et SQL Server-mål.

  8. Bruk den røde pilen fra DataReader-kilden til å koble den til målet som nylig ble lagt til. Denne operasjonen dirigerer feilradene og avkortingsradene til målet for å lagre feilradene.

  9. Gjenta trinn 1 til 8 for alle Dataflyt-oppgaver som har tilgang til ODBC-streng- eller bildekolonner, og som mislykkes med feilmeldingene som er nevnt i «Symptomer»-delen.

Metode 2

Avinstaller .NET Framework 2.0 SP2 eller .NET Framework 3.5 SP1. Det anbefales imidlertid ikke at du avinstallerer en oppdateringspakke, fordi det går på bekostning av påliteligheten, funksjonsforbedringene og ytelsesoptimaliseringene som oppdateringspakken tilbyr.

Følg disse trinnene for å gjenopprette systemet til tilstanden det var i før du installerte .NET Framework 2.0 SP2 eller .NET Framework 3.5 SP1:

  1. Dobbeltklikk på Legg til eller fjern programmer i Kontrollpanel.

  2. Finn Microsoft .NET Framework 3.5 SP1, og avinstaller det.

  3. Finn Microsoft .NET Framework 3.0 SP2, og avinstaller det.

  4. Finn Microsoft .NET Framework 2.0 SP2, og avinstaller det.

  5. Installer den opprinnelige utgaven av .NET Framework 3.5 på nytt. Dette trinnet installerer .NET Framework 2.0 SP1 og .NET Framework 3.0 SP1 på nytt. Du kan få .NET Framework 3.5 ved å gå til følgende Microsoft-webområde:
    http://www.microsoft.com/download/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=no

Metode 3

Kontakt leverandøren av tredjeparts ODBC-driveren for å finne ut om leverandøren har en oppdatering for driveren som løser dette problemet.

Status

Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen «Gjelder for».