2

背景:
SQL Server 2000 から SQL Server 2005 への移行に取り組んでいます。これは、SQL Native Client を使用して ODBC 経由で SQL Server と通信する C++ アプリケーションに DB サービスを提供しています。

問題:
QNAN をデータベースの float 列に挿入しようとしています。私のアプリケーションでは、この値は double (値: 1.#QNAN00000000000) として格納され、パラメーターとしてデータベースに送信されます。これは SQL Server 2000 では問題ではありませんでしたが、SQL Server 20005 では同じコードで次のエラーが発生します。

着信表形式データ ストリーム (TDS) リモート プロシージャ コール (RPC) プロトコル ストリームが正しくありません。パラメータ 3 (""): 指定された値はデータ型 float の有効なインスタンスではありません。ソース データに無効な値がないか確認してください。無効な値の例は、位取りが精度より大きい数値型のデータです。

質問:
SQL Server 2005 で QNAN を受け入れることはできますか? もしそうなら、どのように?

4

2 に答える 2

2

QNAN は SQL 2005 ではサポートされていません。NAN もサポートされていません。

技術的に言えば、SQL 2000 でもサポートされていませんでした。しかし、彼らは働いた。

次の点を確認してください。

SQL 2005 での DATA_PURITY チェック http://support.microsoft.com/kb/923247

訪問したい別の場所: http://www.mssqltips.com/tip.asp?tip=1119

于 2009-01-21T22:46:33.760 に答える
2

このバグ レポートへの回答によると、SQL Server 2005 は NaN または無限大を受け入れません。これは明らかに設計によるものです (並べ替え/比較の問題による)。

于 2009-01-21T22:47:23.383 に答える