sqlite3 c ++:检索blob

时间:2016-10-27 18:50:55

标签: c++ sqlite blob

我有一个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并将其加载到某个容器中的正确方法是什么?我打算稍后重新构建原始数据中的图像

0 个答案:

没有答案