将 NAN(从 C++ 代码)写入 sql 服务器 2012
Write NAN (from C++ code) to sql server 2012
我在数据库 table 中有一个 float, null
参数。
在我的 C++11 应用程序中,我想将 nan
值写入 DB table 作为 NULL
。
我正在做以下事情:
1.将nan
转换为L"NULL"
并存入CComBSTR
2. 在数据库中,将此字符串转换回 NULL
并将其写入 float
列。
我的问题: 在这种情况下,将 nan
写入数据库有更好的方法吗?
具体来说,我想避免这种 CComBstr
转换,因为更新频率非常高并且在 table.
中使用了许多浮点参数
我得到了另一个看起来比这个更好的解决方案,所以想分享这个:
有多个宏用于来自数据库的 reading/writing 数据,例如 COLUMN_ENTRY_STATUS
、COLUMN_ENTRY_TYPE_STATUS
等...
这些为每个数据库字段采用 status
标志。
-写入时,如果值为NAN
,将status
标志设置为DBSTATUS_S_ISNULL
,DB本身会将float
字段值设置为NULL
。
-如果 status
标志为 DBSTATUS_S_ISNULL
,则读取时将值设置为 NAN
。
我在数据库 table 中有一个 float, null
参数。
在我的 C++11 应用程序中,我想将 nan
值写入 DB table 作为 NULL
。
我正在做以下事情:
1.将nan
转换为L"NULL"
并存入CComBSTR
2. 在数据库中,将此字符串转换回 NULL
并将其写入 float
列。
我的问题: 在这种情况下,将 nan
写入数据库有更好的方法吗?
具体来说,我想避免这种 CComBstr
转换,因为更新频率非常高并且在 table.
我得到了另一个看起来比这个更好的解决方案,所以想分享这个:
有多个宏用于来自数据库的 reading/writing 数据,例如 COLUMN_ENTRY_STATUS
、COLUMN_ENTRY_TYPE_STATUS
等...
这些为每个数据库字段采用 status
标志。
-写入时,如果值为NAN
,将status
标志设置为DBSTATUS_S_ISNULL
,DB本身会将float
字段值设置为NULL
。
-如果 status
标志为 DBSTATUS_S_ISNULL
,则读取时将值设置为 NAN
。