使用ODBC将二进制std :: string插入BLOB列

时间:2009-04-12 09:39:59

标签: blob binary-data insert-update

有人能给我举个例子,说明如何使用ODBC和C ++将二进制std :: string插入到BLOB列中吗?

编辑:

重复How to INSERT binary std::string into BLOB (MySQL)

1 个答案:

答案 0 :(得分:0)

如果它实际上是一个二进制字符串,并且你有实际的二进制数据(例如嵌入的空值),那么你需要注意不要使用任何可以将它作为C字符串处理的std :: string成员(例如,终止空值)因为你显然会丢失数据。

std::string类并不适用于此目的 - 它假设您正在使用的实际上是一串字符 - 因为您使用的是blob或二进制数据数组, std::vector可能更合适。

要插入数据,您需要使用绑定参数将向量的内容绑定到SQL查询。也就是说,不是使用SQLExecDirect来执行包含SQL查询的字符串,而是应该使用SQLPrepare来创建语句句柄 - 您将离开二进制值的值所在的位置a'?',然后使用SQLBindParameter将占位符绑定到二进制值。然后使用SQLExecute调用该函数。

上面的SQLBindParameter文档中有一些代码示例。

相关问题