Привязка SQLite в C прекращается досрочно - PullRequest
0 голосов
/ 07 февраля 2012

У меня есть файл png, который должен храниться в базе данных, однако даже при передаче длины в sqlite3_bind_blob() он прекращает заполнять значение с первым нулевым символом.

Вот код ввопрос:

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);

Есть идеи?

Редактировать: Похоже, что в действительности база данных хранит весь большой двоичный объект, но не возвращает его из CLI.интерфейс

1 Ответ

0 голосов
/ 07 февраля 2012

В интерфейсе sqlite cli есть ошибка, при которой он анализирует BLOB-объекты как строки и прекращает их раннюю печать, в том числе, если ему предписано отправить вывод в файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...