我有一个sqlite3数据库,其中.png图像作为BLOB存储在其中
我试图通过C ++接口检索原始数据,如此
RawImageWrapper* obj = 0;
int rc = sqlite3_exec(db, action.c_str(), imageSelectCallback, obj, &errMsg);
where action只是我的SQL语句(它返回正确的记录),RawImageWrapper看起来像这样
struct RawImageWrapper
{
int callback(int argc, char **argv, char **azColName) {
for (int i = 0; i < argc; i++) {
if (strcmp(azColName[i], "Image") == 0) {
buff = std::string(argv[i]);
return 0;
}
}
return 1;
}
std::string buff;
};
使用字符串来保存图像数据可能不是最好的,但我只想要一个快速对象来包装char []。但是,当它尝试构造buff时,它会因访问冲突而失败。
从我的数据库中检索此图像blob并将其加载到某个容器中的正确方法是什么?我打算稍后重新构建原始数据中的图像