int sqlite3_blob_write(sqlite3_blob *, const void *z, int n, int iOffset);
Эта функция используется, чтобы написать данные в открытый BLOB из буфера. N байт данных копируются из буфера Z в открытый BLOB, начиная со смещения iOffset.
При успехе sqlite3_blob_write() вернет SQLITE_OK. Иначе она вернет код ошибки или расширенный код ошибки. Если SQLITE_MISUSE не возвращен, эта функция устанавливает код ошибки соединения с базой данных и сообщение, доступное через sqlite3_errcode() и sqlite3_errmsg().
Если обработчик BLOB, переданный как первый аргумент, не был открыт для записи (параметр флагов sqlite3_blob_open() был нолем), эта функция возвращает SQLITE_READONLY.
Эта функция может только изменить содержание BLOB, невозможно увеличить размер BLOB, используя этот API. Если iOffset меньше N байт от конца BLOB, SQLITE_ERROR возвращен, и никакие данные не написаны. Размер BLOB (и следовательно максимальное значение N+iOffset) может быть определен, используя интерфейс sqlite3_blob_bytes(). Если N или iOffset меньше нуля, возвращается SQLITE_ERROR и никакие данные не написаны.
Попытка написать обработчик BLOB с истекшим сроком терпит неудачу с кодом ошибки SQLITE_ABORT. Записи BLOB, которые произошли перед истекшим сроком не отменены, хотя, конечно, те изменения, возможно, были переписаны запросом.
Это работает только с BLOB, созданными sqlite3_blob_open() и не закрытыми sqlite3_blob_close(). Передача любого другого указателя приводит к неопределенному и вероятно нежелательному поведению.
См. также: sqlite3_blob_read().