FIX: (SSIS)、.NET Framework 2.0 SP2 または.NET Framework 3.5 SP1 のインストール後 SQL Server 2005、SQL Server 2008、または SQL Server 2008 R2 の統合サービス パッケージを実行するときエラー メッセージ:「ADO NET ソース [1424]」

適用対象: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Developer EditionMicrosoft SQL Server 2005 Enterprise Edition

マイクロソフトは、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 を返します。

解決策


修正プログラムの情報

サポートされている修正プログラムは、マイクロソフトから入手可能です。ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。この問題が発生しているシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行う場合があります。したがって、この問題の影響が深刻でない場合は、この修正プログラムが含まれる次のソフトウェア更新プログラムがリリースされるまで待つことをお勧めします。

修正プログラムをダウンロードできる場合は、このサポート技術情報の資料の上部に「修正プログラムのダウンロード」セクションがあります。このセクションが表示されていない場合は、マイクロソフト カスタマー サービス サポートにお問い合わせのうえ、修正プログラムを入手してください。

注: さらなる問題が発生した場合、またはトラブルシューティングが必要な場合には、別のサービス リクエストの作成が必要な場合があります。この修正プログラムの対象外の追加の質問および問題については、通常のサポート料金が適用されます。一覧マイクロソフト カスタマー サービス & サポートの電話番号または別のサービス リクエストを作成する、次のマイクロソフト Web サイトを参照してください。注: [修正プログラムのダウンロード] フォームには、修正プログラムが提供されている言語が表示されます。お使いの言語が表示されない場合は、その言語の修正プログラムが利用できないためです。

必要条件

.NET Framework 2.0 Service Pack 2 をインストールする必要があります。

再起動に関する情報

この修正プログラムの適用後にコンピュータを再起動する必要はありません。

レジストリ情報

レジストリを変更する必要はありません。

修正プログラム ファイルの情報

この修正プログラムには、この資料に記載されている問題を修正するために必要なファイルのみが含まれています。製品を最新のビルドに更新するために必要なすべてのファイルのこの修正プログラムが含まれていない可能性があります。この修正プログラムのの英語バージョンがファイル属性 (またはそれ以降のファイル属性) には次の表に記載されています。各ファイルの日付および時刻は、世界協定時刻 (UTC) で示されています。ファイル情報に表示される時刻は、ローカル時刻に変換されています。UTC とローカル時刻との差を検索するには、コントロール パネルの [日付と時刻] でタイム ゾーン] タブを使用します
Windows 2000、Windows Server 2003 では、Windows xp、32 ビット バージョンの.NET Framework 2.0
ファイル名ファイル バージョンファイル サイズ日付時刻プラットフォーム
System.data.dll2.0.50727.40632,933,76019-05:08x86
Windows 2000、Windows Server 2003、Windows XP では、x64 用の.NET Framework 2.0 のバージョン
ファイル名ファイル バージョンファイル サイズ日付時刻プラットフォーム
System.data.dll2.0.50727.40633,008,51218-23:51x64
System.data.dll2.0.50727.40632,933,76019-05:08x86
Windows 2000、Windows Server 2003、Windows XP、ia-64 バージョン用の.NET Framework 2.0
ファイル名ファイル バージョンファイル サイズ日付時刻プラットフォーム
System.data.dll2.0.50727.40632,933,76019-05:08x86
System.data.dll2.0.50727.40633,234,81619-01:09IA-64
Windows Vista では、Windows Server 2008 では、32 ビット バージョンの.NET Framework 2.0
ファイル名ファイル バージョンファイル サイズ日付時刻
System.data.dll2.0.50727.44002,933,76010-Sep-200911:54
Windows Vista、Windows Server 2008 では、x64 用の.NET Framework 2.0 のバージョン
ファイル名ファイル バージョンファイル サイズ日付時刻
System.data.dll2.0.50727.44003,008,51210-Sep-200911:54
Windows Vista の Windows Server 2008 では、ia-64 バージョンの.NET Framework 2.0
ファイル名ファイル バージョンファイル サイズ日付時刻
System.data.dll2.0.50727.44003,234,81610-Sep-200911:54

回避策


この問題を回避するには、次の方法のいずれかを使用します。

方法 1

DataReader ソースまたはマネージ ADO.NET データ ソースには、エラーおよび切り捨てのリダイレクトを構成するのには SSIS パッケージを編集します。先のエラー出力をリダイレクトする SSIS パッケージを編集すると、パッケージが正常に実行場合でも、先に行は書き込まれません。そのためには、以下の手順を実行します。

注: 次の手順では、DataReader ソースからデータを読み取り、SQL Server 2005 の SSIS パッケージを使っていることを前提としています。
  1. SQL Server ビジネス インテリジェンス開発 Studio では、SSIS パッケージを開きます。
  2. データ フロー デザイナーでは、 DataReader ソースの [詳細エディター ] ダイアログ ボックスを開きます。
  3. 入力プロパティと出力プロパティ] タブをクリックし、入力と出力のツリーで、 DataReader 出力ノードを展開します。
  4. 出力列] ノードを展開します。
  5. [出力列] ノードで、各列をクリックして、データ型のプロパティを調べます。プロパティを持つデータ型が dt_wstr 型、DT_NTEXT、DT_BYTES、または DT_IMAGE 列ごとに、次の 2 つのプロパティを編集します。
    • RD_RedirectRowErrorRowDispositionプロパティを設定します。
    • RD_RedirectRowTruncationRowDispositionプロパティを設定します。
  6. 変更を保存するのには[ok]をクリックします。
  7. データ フロー デザイナーで新しい送信先を追加します。たとえば、フラット ファイル変換先または SQL Server のリンク先を追加します。

  8. DataReader ソースから新しく追加したリンク先に接続するために赤色の矢印を使用します。この操作は、エラー行を保存するためにエラーの行と変換先に切り捨て行が直接されます。

  9. アクセス ODBC の文字列またはイメージの列とは、「現象」に記載されているエラー メッセージで失敗するすべてのデータ フロー タスクには、手順 1 ~ 8 を繰り返します。

方法 2

.NET Framework 2.0 SP2 または.NET Framework 3.5 SP1 をアンインストールします。ただし、この犠牲にすること、信頼性、機能の強化、および service pack が提供するパフォーマンスの最適化のため、サービス パックをアンインストールすることはお勧めしません。



.NET Framework 2.0 SP2 または.NET Framework 3.5 SP1 をインストールする前の状態にシステムを復元するには、次の手順を実行します。
  1. コントロール パネルの [プログラム追加と削除をダブルクリックします。
  2. Microsoft.NET Framework 3.5 SP1 を見つけて、それをアンインストールします。
  3. Microsoft.NET Framework 3.0 SP2 を見つけて、それをアンインストールします。
  4. Microsoft.NET Framework 2.0 SP2 を見つけて、それをアンインストールします。
  5. オリジナル リリース版の.NET Framework 3.5 を再インストールします。この手順は、.NET Framework 2.0 SP1 および.NET Framework 3.0 SP1 を再インストールします。.NET Framework 3.5 を取得するには、次のマイクロソフト Web サイトを参照してください。

方法 3

仕入先にこの問題を解決するのにはドライバーの更新があるかどうかを判断するのにはサード ・ パーティ製の ODBC ドライバーのベンダーに問い合わせてください。

状況


マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。