c++ - 升级到SQL Server 2005 : Cannot INSERT QNAN into float column?

标签 c++ sql-server-2005 sqlncli

背景:
我正在努力从 SQL Server 2000 迁移到 SQL Server 2005。这为使用 SQL Native Client 通过 ODBC 与 SQL Server 通信的 C++ 应用程序提供数据库服务。

问题:
我正在尝试将 QNAN 插入数据库中的浮点列中。在我的应用程序中,该值存储为 double 值(值:1.#QNAN00000000000)并作为参数发送到数据库中。这在 SQL Server 2000 中不是问题,但相同的代码在 SQL Server 20005 中出现以下错误:

The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 3 (""): The supplied value is not a valid instance of data type float. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision.

问题:
是否可以让 SQL Server 2005 接受 QNAN?如果是这样,怎么办?

最佳答案

根据this bug report的回复,SQL Server 2005 不接受 NaN 或无穷大,这显然是设计使然(由于排序/比较问题)。

关于c++ - 升级到SQL Server 2005 : Cannot INSERT QNAN into float column?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/467327/

相关文章:

c++ - 分析有或没有优化的代码

sql-server-2005 - SQL Server 列之间的逗号分隔值

sql-server-2005 - 索引键列 VS 索引包含列

sql-server - 链接服务器元数据不一致

sql - 在 SELECT 语句 : what's the optimal SQL approach? 之后需要行计数

c++ - 在 Linux C++ 上检测 keydown 和 keyup 事件

c++ - 为什么当条件为真时 x 的值没有改变?

c++ - 函数参数和默认参数的评估顺序

sql-server-2005 - T-SQL - 返回自定义错误消息并结束查询

c++ - 使用 C++ 和 SQL Native Client 为 SQLPutData 准备的 SQLBindParameter