谁能给我一个例子,如何使用 ODBC 和 C++ 将二进制 std::string 插入 BLOB 列,好吗?
编辑:
谁能给我一个例子,如何使用 ODBC 和 C++ 将二进制 std::string 插入 BLOB 列,好吗?
编辑:
如果它确实是一个二进制字符串,并且您在其中有实际的二进制数据(例如嵌入的空值),那么您需要注意不要使用任何可以将其视为 C 字符串的 std::string 成员(例如终止 null),因为您显然最终会丢失数据。
该类std::string
并不真正适合此目的 - 它是在假设您正在使用的实际上是一个字符串的情况下编写的 - 因为您使用的是二进制数据的 blob 或数组,所以 astd::vector
可能更合适。
要插入数据,您需要使用绑定参数将向量的内容绑定到 SQL 查询。也就是说,您应该使用SQLPrepare创建语句句柄,而不是使用SQLExecDirect来执行包含 SQL 查询的字符串- 您将二进制值的值与“?”分开,然后使用SQLBindParameter将占位符绑定到二进制值。然后,您使用SQLExecute调用该函数。
SQLBindParameter
上面的文档中有一些代码示例。