修正: SQLBindParameter 関数を呼び出す SQL Server 2008 ベースのアプリケーションを実行すると、"受信表形式データ ストリーム (TDS) リモート プロシージャ コール (RPC) プロトコル ストリームが間違っています" というエラー メッセージが表示される

マイクロソフトでは、Microsoft SQL Server 2008 の修正を 1 つのダウンロード可能なファイルとして配布しています。 修正は累積的であるため、新しいリリースの修正には、以前のリリースの SQL Server 2008 の修正に含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれます。

現象

アプリケーションでは、SQL Server 2008 Native Client ドライバーを使用します。 SQLBindParameter 関数を呼び出して、クエリのワイド文字データ型のパラメーターをバインドします。 たとえば、NCHAR データ型または NVARCHAR データ型のパラメーターをバインドします。 アプリケーションは、4,000 より大きい値を SQLBindParameter 関数の ColumnSize パラメーターに渡します。 アプリケーションでクエリを実行すると、次のエラー メッセージが表示されます。

注

着信表形式データ ストリーム (TDS) リモート プロシージャ コール (RPC) プロトコル ストリームが正しくありません。 パラメーター 1 (""): データ型0xE7のデータ長またはメタデータ長が無効です。

注: このエラー メッセージはサーバー側のエラー メッセージです。 アプリケーションが代わりに SQL Server 2005 Native Client ドライバーを使用している場合は、クライアント側で予期したとおりに次のエラー メッセージが表示されます。

注

[Microsoft][SQL Native Client]精度値が無効です

原因

この問題は、SQL Server 2008 Native Client ドライバーが SQLBindParameter 関数の入力列サイズの実行時チェックを実行しないために発生します。 さらに、入力列サイズが 4,000 より大きく、パラメーターがワイド文字データ型である場合、ドライバーは列サイズを 2 倍にします。 そのため、SQL Server は、パラメーターが上限 (8,000) を超えているというサーバー側のエラーを返します。

注: SQL Server 2005 Native Client ドライバーは、入力列サイズのランタイム チェックを実行します。 したがって、入力列のサイズが 8,000 より大きい場合、SQL Server 2005 Native Client ドライバーはクライアント側のエラーを返します。

解決策

この問題の修正プログラムは、SQL Server 2008 Service Pack 1 の累積的な更新プログラム 3 で最初にリリースされました。 この累積的な更新プログラム パッケージの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。

971491 SQL Server 2008 Service Pack 1 の累積的な更新プログラム パッケージ 3 注: ビルドは累積的であるため、新しくリリースされた各修正プログラムには、以前の SQL Server 2008 更新プログラムのリリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 マイクロソフトでは、この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

970365 SQL Server 2008 Service Pack 1 以降にリリースされた SQL Server 2008 ビルド
Microsoft SQL Server 2008 の修正プログラムは、特定の SQL Server Service Pack 用に作成されます。 SQL Server 2008 Service Pack 1 のインストールには、SQL Server 2008 Service Pack 1 修正プログラムを適用する必要があります。 既定では、1 つの SQL Server Service Pack で提供されているすべての修正プログラムは、次の SQL Server Service Pack に含まれています。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

参考資料

SQL Server の増分サービス モデルの関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

935897 報告された問題に対する修正プログラムを提供する SQL Server チームの増分サービス モデル (ISM) について

SQL Server の更新プログラムの命名方式の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

822499 Microsoft SQL Server ソフトウェア更新プログラム パッケージの新しい名前付けスキーマ

ソフトウェア更新プログラムに関する用語の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

824684 Microsoft のソフトウェア更新プログラムの説明で使用される一般的な用語の解説