2

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

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

传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议流不正确。参数 3 (""):提供的值不是浮点数据类型的有效实例。检查源数据中的无效值。无效值的一个示例是小数位数大于精度的数值类型数据。

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

4

2 回答 2

2

sql 2005 不支持 QNAN。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 回答