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