我有一个要存储在数据库中的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界面返回的

最佳答案

sqlite cli界面存在一个错误,该错误将blob解析为字符串并尽早停止打印它们,包括是否被告知将输出发送到文件。

关于c - C中的SQLite绑定(bind)Blob提前终止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9170297/

10-08 22:24