我有一个 MySQL 数据库,其中包含一个包含BINARY(16)
列的表。
当我从我的 C++ 应用程序通过 ODBC 写入二进制数据时,数据被视为以 Null 结尾的字符串,即它在数据中的第一个 Null 字节处被截断。
在我的 C++ 应用程序中,我使用如下方式绑定一个unsigned char [16]
数组:SQLBindParameter
SQLBindParameter(statementHandler, paramCount, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_BINARY, MAX_NOTIFICATION_OUT_IP_BIN_LEN, 0, _notificationOutDstIP, MAX_NOTIFICATION_OUT_IP_BIN_LEN, 0);
MAX_NOTIFICATION_OUT_IP_BIN_LEN
是 16。
即使二进制数据包含 Null 值,如何确保将 16 个字节写入数据库?