sqlite3_exec读取blob数据

Posted sherlock-merlin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlite3_exec读取blob数据相关的知识,希望对你有一定的参考价值。

INT getDataCallBack(void* para, int nColumn, char** colValue, char** colName)
{
    sqlite3* db;
    char* errmsg;
    int nResult = sqlite3_open("MSG.db", &db);
    if (nResult != SQLITE_OK)
    {
        MessageBoxA(NULL, "数据库MSG.db打开失败", NULL, NULL);
        return -1;
    }
    for (int i = 0; i < 1; i++) {
        int length = atoi(colValue[11]);
        unsigned char* pData = new unsigned char[length]();
        //pData = (unsigned char*)colValue[10];
        memcpy(pData, colValue[10], length);
        
        unsigned char c;
        char buf[3];
        std::string result = "";
        for (int i = 0;i < length; i++)
        {
            sprintf(buf, "%x", pData[i]);
            result += buf;
        }

        char sql[3000] = { 0 };
        sprintf_s(sql, "insert or ignore into MSG VALUES (%s, %s, %s, %s, %s, %s, %s, %s, ‘%s‘, ‘%s‘, X‘%s‘);", colValue[0], colValue[1], colValue[2], colValue[3], colValue[4], colValue[5], colValue[6], colValue[7], colValue[8], colValue[9], result.c_str());
        sqlite3_exec(db, sql, NULL, NULL, &errmsg);
    }
    sqlite3_close(db);
    Sleep(20);
    return 0;
}

VOID getData(sqlite3* db) {
    char sql[1000] = { 0 };
    sprintf_s(sql, "select a, b, c, d, e, f, g, h, i, j, k from MSG");
    char* sqlErrmsg = NULL;
    sqlite3_exec(db, sql, getDataCallBack, NULL, &sqlErrmsg);
}

 

以上是关于sqlite3_exec读取blob数据的主要内容,如果未能解决你的问题,请参考以下文章

sql 这些代码片段将演示如何逐步使用PolyBase。你应该有一个blob存储和存储秘密方便

如何在java中读取oracle blob

用于读取 blob 架构的 Azure 函数

如何使用 .net 中的 SAS 密钥从 Azure Blob 读取数据

如何在 Android 上的 WebView 中读取 Blob 中的数据?

已解决在react+ts中 atnd 用 upload 组件报错Failed to execute ‘readAsArrayBuffer,param 1 is notof type Blob(代码片段