![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Эта функция используется, чтобы написать данные в открытый
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().
Choose any three.
SQLite C Interface
Запись данных в BLOB
int sqlite3_blob_write(sqlite3_blob *, const void *z, int n, int iOffset);