適用先
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 SQL Server 2005 では、Microsoft SQL Server 2008 を分散し、Microsoft SQL Server の 2008 R2 の修正プログラムを 1 つのダウンロード可能なファイルとしてします。修正プログラムは累積的であるため、新しいリリースごとにすべての修正プログラムが含まれていて、以前の SQL Server 2005、Microsoft SQL Server 2008 または SQL Server 2008 R2 に含まれていたすべてのセキュリティ修正プログラムの更新プログラムのリリースします。

現象

次のような状況を考えます。

  • .NET Framework のインストールされている次のいずれかを搭載したコンピューター上には、Microsoft SQL Server 2005、Microsoft SQL Server 2008 または SQL Server 2008 R2 の統合サービス パッケージ (SSIS) を実行します。

    • .NET Framework 2.0 Service Pack 2 (SP2)

    • .NET Framework 3.5 Service Pack 1 (SP1)

  • SSIS パッケージは、文字データをインポートするサード ・ パーティ製の ODBC ドライバーを使用します。

ただし、SSIS パッケージを実行すると、次のエラー メッセージが表示されます。

[ADO NET ソース [1424]エラー: SSIS エラー コード DTS_E_INDUCEDTRANSFORMFAILUREONERROR。「コンポーネント「ADO NET ソース」(1424)」は、エラー コード 0x80131937 が発生し、出力列"columnname"(番号)] にエラー行の処理エラーのエラーを指定するために失敗しました。指定したコンポーネントの指定したオブジェクトでエラーが発生しました。これの前に、エラーに関する詳細情報の転記のエラー メッセージがある可能性があります。0xc0209029 のエラー: データ フロー タスク: エラー コード 0x80131937 が発生したため、「コンポーネント"コンポーネント名"(1)」が失敗しました.[ADO NET ソース [1424]エラー: コンポーネント [ADO NET ソース] (1424) では、データを処理できませんでした。パイプライン コンポーネントには、メソッド呼び出しから HRESULT エラー コード 0xC0209029 が返されます。[SSIS。パイプライン] エラー: SSIS エラー コード DTS_E_PRIMEOUTPUTFAILED。コンポーネント「ADO NET ソース」(1424) 返されるエラー コード 0xC02090F5 の PrimeOutput メソッドです。コンポーネントでは、パイプラインのエンジンには PrimeOutput() が呼び出されたときにエラー コードが返されます。コンポーネントは、エラー コードの意味が定義されているが、エラーが致命的なパイプラインが実行を停止しています。これの前に、エラーに関する詳細情報の転記のエラー メッセージがある可能性があります。

この問題は、次の条件に該当する場合、マネージ ODBC プロバイダーからアクセスされる ODBC ドライバーに影響します。

  • ExecuteReader関数は、処理のパラメーターによって呼び出されます。 この呼び出しとパラメーターは、次の状況で使用されます。

    • SQL Server 2005 の SSIS パッケージは、DataReader ソースから、または SQL Server 2008 の SSIS パッケージは、マネージ ADO.NET のデータ ソースからデータを読み取るときにデータを読み込みます。

    • データ ソースは、エラーおよび切り捨ての値をリダイレクトするのには構成されていません。

  • OdbcDataReader.IsDbNull関数が呼び出されます。SSIS パッケージは、このメソッドを使用しない、またはフィールドの値が NULL かどうかを決定します。

  • 関数は、以下のいずれかが呼び出されます。

    • DT_BYTES などの特定のデータ型をマネージ ODBC プロバイダーから取得するOdbcDataReader.GetBytes関数と呼びます。

    • マネージ ODBC プロバイダーから dt_wstr 型など、特定の文字列データ型を取得するOdbcDataReader.GetChars関数と呼びます。

原因

.NET Framework 2.0 SP2 および.NET Framework 3.5 SP1 は、「現象」に記載されているシナリオでは、ネイティブの ODBC ドライバーからの文字列の読み取りをマネージ ODBC プロバイダーの変更を紹介します。この変更によりは、 SQLGetData API 関数を使用してネイティブの ODBC ドライバーで呼び出されるマネージ ODBC プロバイダーは、サイズが 0 のバッファーを使用します。ODBC 準拠のドライバーには、この呼び出しで問題がありません。ただし、非準拠の ODBC ドライバーについては、このような状況があります。準拠の ODBC ドライバーでは、 SQLGetData API 関数は、バッファー サイズが 0 のときに、SUCCESS_WITH_INFO が検出されたを返します。非準拠の ODBC ドライバーでは、呼び出しは、NO_DATA を返します。

解決策

修正プログラムの情報

サポートされている修正プログラムは、マイクロソフトから入手可能です。ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。この問題が発生しているシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行う場合があります。したがって、この問題の影響が深刻でない場合は、この修正プログラムが含まれる次のソフトウェア更新プログラムがリリースされるまで待つことをお勧めします。修正プログラムをダウンロードできる場合は、このサポート技術情報の資料の上部に「修正プログラムのダウンロード」セクションがあります。このセクションが表示されていない場合は、マイクロソフト カスタマー サービス サポートにお問い合わせのうえ、修正プログラムを入手してください。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。