C中的SQLite绑定blob提前终止

时间:2012-02-07 02:38:47

标签: c sqlite

我有一个要存储在数据库中的png文件,但是,即使将长度传递给sqlite3_bind_blob(),它也会停止填充第一个nul字符的值。

以下是相关代码:

fseek(file,0xC,SEEK_CUR); // Skip to 12 (0xC) and read everything (It's a raw png file)
char content[size-0xC];
fread(content,1,size-0xC,file);

sqlite3_bind_int(inserticonstmt,1,id);
sqlite3_bind_blob(inserticonstmt,2,content,size-0xC,SQLITE_STATIC);
sqlite3_step(inserticonstmt);
sqlite3_clear_bindings(inserticonstmt);
sqlite3_reset(inserticonstmt);

有什么想法吗?

编辑:看起来,虽然数据库实际上存储了整个blob,但它并没有从CLI界面返回

1 个答案:

答案 0 :(得分:0)

sqlite cli接口有一个错误,它将blob解析为字符串并提前停止打印,包括是否告诉它将输出发送到文件。