KB969845 – OPRAVA: Chybové hlásenie pri spustení balíka SQL Server 2005, SQL Server 2008 alebo SQL Server 2008 R2 Integration Services (SSIS) po inštalácii balíka .NET Framework 2.0 SP2 alebo .NET Framework 3.5 SP1: "ADO NET Source [1424]"

Vzťahuje sa na
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

Spoločnosť Microsoft distribuuje opravy Microsoft SQL Server 2005, Microsoft SQL Server 2008 a Microsoft SQL Server 2008 R2 ako jeden súbor na stiahnutie. Keďže opravy sú kumulatívne, každé nové vydanie obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho vydania opráv SQL Server 2005, Microsoft SQL Server 2008 alebo SQL Server 2008 R2.

Príznaky

Pozrite si nasledujúci scenár:

  • Balík SSIS (Microsoft SQL Server 2005, Microsoft SQL Server 2008 alebo SQL Server 2008 R2 Integration Services spustíte v počítači, ktorý má jednu z nasledujúcich inštalácií rozhrania .NET Framework:

    • .NET Framework 2.0 Service Pack 2 (SP2)
    • .NET Framework 3.5 Service Pack 1 (SP1)
  • Balík SSIS používa ovládač ODBC od tretej strany, ktorý importuje údaje znakov.

Pri spustení balíka SSIS sa však zobrazia nasledujúce chybové hlásenia:

Poznámka

[ADO NET Source [1424]] Chyba: Kód chyby SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. "súčasť ADO NET Source" (1424) zlyhala, pretože sa vyskytol kód chyby 0x80131937 a v umiestnení riadka chyby v "výstupnom stĺpci "názovstĺpca" (číslo)" sa uvádza zlyhanie v prípade chyby. Vyskytla sa chyba na zadanom objekte určeného komponentu. Pred týmto sa môžu zobraziť chybové hlásenia s ďalšími informáciami o zlyhaní.

Chyba 0xc0209029: Úloha toku údajov: Súčasť "ComponentName" (1) zlyhala, pretože 0x80131937 sa vyskytol kód chyby...

[ADO NET Source [1424]] Chyba: Súčasť ADO NET Source (1424) nedokázala spracovať údaje. Komponent kanála vrátil kód chyby HRESULT 0xC0209029 z volania metódy.

[SSIS. Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. Metóda PrimeOutput v komponente ADO NET Source (1424) vrátila kód chyby 0xC02090F5. Súčasť vrátila kód zlyhania, keď modul kanála volal PrimeOutput(). Význam kódu zlyhania je definovaný súčasťou, ale chyba je kritická a kanál sa prestal vykonávať. Pred týmto sa môžu zobraziť chybové hlásenia s ďalšími informáciami o zlyhaní.

Tento problém sa týka ovládačov ODBC, ku ktorým sa pristupuje prostredníctvom spravovaného poskytovateľa rozhrania ODBC, ak sú splnené tieto podmienky:

  • Funkciu ExecuteReader volá parameter CommandBehavior.SequentialAccess. Toto volanie a parameter sa používajú za nasledujúcich okolností:

    • Keď balík SSIS SQL Server 2005 číta údaje zo zdroja programu DataReader alebo keď balík SSIS SQL Server 2008 prečíta údaje zo spravovaného zdroja údajov ADO.NET.
    • Zdroj údajov nie je nakonfigurovaný na presmerovanie chýb a skrátenie hodnôt.
  • Volá sa funkcia OdbcDataReader.IsDbNull. Balík SSIS používa túto metódu na určenie, či má hodnota v poli hodnotu NULL alebo nie.

  • Volá sa jedna z nasledujúcich funkcií:

    • Funkcia OdbcDataReader.GetBytes sa volá na získanie určitých typov údajov, ako napríklad DT_BYTES, od spravovaného poskytovateľa ODBC.
    • Funkcia OdbcDataReader.GetChars sa volá na získanie určitých typov údajov reťazca, ako je napríklad DT_WSTR, od spravovaného poskytovateľa ODBC.

Príčina

.NET Framework 2.0 SP2 a .NET Framework 3.5 SP1 zavádzajú zmenu v spravovanom poskytovateľovi ODBC, pomocou ktorej sa načítavajú reťazce z natívneho ovládača ODBC v scenári popísanom v časti Príznaky. Z dôvodu tejto zmeny spravovaný poskytovateľ ODBC, ktorý sa volá v natívnom ovládači ODBC pomocou funkcie rozhrania API SQLGetData, používa medzipamäť s veľkosťou 0. Kompatibilné ovládače ODBC nemajú v tomto volaní žiadne problémy. Za týchto okolností však môžu nevyhovujúce ovládače ODBC zlyhať. V prípade kompatibilného ovládača ODBC funkcia SQLGetData API vráti SUCCESS_WITH_INFO pri zistení medzipamäte veľkosti 0. V prípade nekompatibilného ovládača ODBC volanie vráti NO_DATA.

Riešenie

Informácie o rýchlych opravách

Od spoločnosti Microsoft je k dispozícii podporovaná rýchla oprava. Táto rýchla oprava je však určená len na vyriešenie problému, ktorý je popísaný v tomto článku. Túto rýchlu opravu použite len v systémoch, v ktorých sa vyskytol tento konkrétny problém. Táto rýchla oprava môže prejsť ďalšími testami. Ak teda nie ste vážne zasiahnutí týmto problémom, odporúčame počkať na ďalšiu aktualizáciu softvéru, ktorá obsahuje túto rýchlu opravu.

Ak je rýchla oprava k dispozícii na stiahnutie, v hornej časti článku databázy Knowledge Base sa nachádza časť K dispozícii na stiahnutie rýchlej opravy. Ak sa táto časť nezobrazuje, obráťte sa na oddelenie služieb zákazníkom a technickej podpory spoločnosti Microsoft a požiadajte o rýchlu opravu.

Poznámka: Ak sa vyskytnú ďalšie problémy alebo je potrebné riešenie problémov, možno bude potrebné vytvoriť samostatnú žiadosť o službu. Zvyčajné náklady na podporu sa budú vzťahovať na ďalšie otázky a problémy podpory, ktoré nespĺňajú podmienky na túto konkrétnu rýchlu opravu. Úplný zoznam telefónnych čísel na služby zákazníkom a technickej podpory spoločnosti Microsoft alebo ak chcete vytvoriť samostatnú žiadosť o službu, nájdete na nasledujúcej webovej lokalite spoločnosti Microsoft:

http://support.microsoft.com/contactus/?ws=support Poznámka: Formulár K dispozícii na stiahnutie rýchlych opráv zobrazuje jazyky, pre ktoré je rýchla oprava k dispozícii. Ak sa váš jazyk nezobrazuje, nie je pre daný jazyk k dispozícii rýchla oprava.

Predpoklady

Musíte mať nainštalovaný balík .NET Framework 2.0 Service Pack 2.

Informácie o reštartovaní

Po použití tejto rýchlej opravy nie je potrebné reštartovať počítač.

Informácie o databáze Registry

Databázu Registry nemusíte meniť.

Informácie o súboroch rýchlych opráv

Táto rýchla oprava obsahuje iba tie súbory, ktoré sú potrebné na opravu problémov uvedených v tomto článku. Táto rýchla oprava nemusí obsahovať všetky súbory, ktoré sú potrebné na úplnú aktualizáciu produktu na najnovšiu zostavu. Anglická verzia tejto rýchlej opravy má atribúty súborov (alebo neskoršie atribúty súborov), ktoré sú uvedené v nasledujúcej tabuľke. Dátumy a časy týchto súborov sú uvedené v koordinovanom svetovom čase (UTC). Pri zobrazení informácií o súbore sa tieto informácie prevedú na miestny čas. Ak chcete zistiť rozdiel medzi časom UTC a miestnym časom, použite kartu Časové pásmo v položke Dátum a čas na ovládacom paneli.

.NET Framework 2.0 pre Windows 2000, Windows Server 2003, Windows XP, 32-bitové verzie

Názov súboru Verzia súboru Veľkosť súboru Dátum Čas Platforma
System.data.dll 2.0.50727.4063 2,933,760 19- 05:08 x86

.NET Framework 2.0 pre Windows 2000, Windows Server 2003, Windows XP, verzie x64

Názov súboru Verzia súboru Veľkosť súboru Dátum Čas Platforma
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 pre Windows 2000, Windows Server 2003, Windows XP, verzie IA-64

Názov súboru Verzia súboru Veľkosť súboru Dátum Čas Platforma
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 pre Windows Vista, Windows Server 2008, 32-bitové verzie

Názov súboru Verzia súboru Veľkosť súboru Dátum Čas
System.data.dll 2.0.50727.4400 2,933,760 10-Sep-2009 11:54

.NET Framework 2.0 pre Windows Vista, Windows Server 2008, verzie x64

Názov súboru Verzia súboru Veľkosť súboru Dátum Čas
System.data.dll 2.0.50727.4400 3,008,512 10-Sep-2009 11:54

.NET Framework 2.0 pre Windows Vista, Windows Server 2008, verzie IA-64

Názov súboru Verzia súboru Veľkosť súboru Dátum Čas
System.data.dll 2.0.50727.4400 3,234,816 10-Sep-2009 11:54

Alternatívne riešenie

Ak chcete tento problém obísť, použite jednu z nasledujúcich metód.

Spôsob 1

Úpravou balíka SSIS nakonfigurujte presmerovanie chýb a skrátení v zdroji aplikácie DataReader alebo v zdroji údajov spravovanej ADO.NET. Po úprave balíka SSIS s cieľom presmerovať výstup chyby do cieľa sa balík úspešne spustí aj napriek tomu, že do cieľa nie sú zapísané žiadne riadky. Postupujte podľa nasledujúcich krokov.

Poznámka: V nasledujúcich krokoch sa predpokladá, že používate balík SSIS pre SQL Server 2005, ktorý načítava údaje zo zdroja programu DataReader.

  1. Otvorte balík SSIS v SQL Server Business Intelligence Development Studio.

  2. Otvorte dialógové okno Rozšírený editor zdroja programu DataReader v návrhárovi toku údajov.

  3. Kliknite na kartu Vlastnosti vstupu a výstupu a potom v strome vstupov a výstupov rozbaľte uzol Výstup programu DataReader.

  4. Rozbaľte uzol Výstupné stĺpce .

  5. Kliknite na každý stĺpec v uzle Výstupné stĺpce a potom skontrolujte vlastnosť TypÚdajov. Pre každý stĺpec, ktorého vlastnosť TypÚdajov je DT_WSTR, DT_NTEXT, DT_BYTES alebo DT_IMAGE, upravte tieto dve vlastnosti:

    • Nastavte vlastnosť ErrorRowDisposition na RD_RedirectRow.
    • Nastavte vlastnosť TruncationRowDisposition na RD_RedirectRow.
  6. Kliknutím na tlačidlo OK zmeny uložíte.

  7. Pridajte nové cieľové umiestnenie v návrhárovi toku údajov. Môžete napríklad pridať cieľové umiestnenie plochého súboru alebo cieľové umiestnenie SQL Server.

  8. Pomocou červenej šípky zo zdroja programu DataReader pripojte tento zdroj k novo pridanému cieľu. Táto operácia nasmeruje riadky chýb a skrátené riadky do cieľa, aby sa uložili riadky s chybami.

  9. Kroky 1 až 8 zopakujte pre všetky úlohy toku údajov, ktoré pristupujú k stĺpcom reťazca ODBC alebo stĺpcov obrázkov a ktoré zlyhajú s chybovými hláseniami uvedenými v časti Príznaky.

Spôsob 2

Odinštalujte .NET Framework 2.0 SP2 alebo .NET Framework 3.5 SP1. Neodporúčame však balík Service Pack odinštalovať, pretože tým sa obetuje spoľahlivosť, vylepšenia funkcií a optimalizácie výkonu, ktoré balík Service Pack ponúka.

Ak chcete obnoviť systém do stavu, v ktorom bol pred inštaláciou rozhrania .NET Framework 2.0 SP2 alebo .NET Framework 3.5 SP1, postupujte podľa nasledujúcich krokov:

  1. Na ovládacom paneli dvakrát kliknite na položku Pridať alebo odstrániť programy.

  2. Vyhľadajte rozhranie Microsoft .NET Framework 3.5 SP1 a potom ho odinštalujte.

  3. Vyhľadajte balík Microsoft .NET Framework 3.0 SP2 a potom ho odinštalujte.

  4. Vyhľadajte balík Microsoft .NET Framework 2.0 SP2 a potom ho odinštalujte.

  5. Znova nainštalujte pôvodné vydanie rozhrania .NET Framework 3.5. Tento krok preinštaluje .NET Framework 2.0 SP1 a .NET Framework 3.0 SP1. Ak chcete získať rozhranie .NET Framework 3.5, navštívte nasledujúcu webovú lokalitu spoločnosti Microsoft:
    http://www.microsoft.com/download/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en

Metóda 3

Na vyriešenie tohto problému sa obráťte na dodávateľa ovládača ODBC od nezávislého dodávateľa a zistite, či dodávateľ disponuje aktualizáciou ovládača.

Stav

Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.