小巧、快速、可靠。
選擇其中三項。

SQLite C 介面

逐步寫入資料到 BLOB

int sqlite3_blob_write(sqlite3_blob *, const void *z, int n, int iOffset);

此函式用於將資料從呼叫者提供的緩衝區寫入已開啟的 BLOB 控制代碼。從緩衝區 Z 複製 N 個位元組的資料到已開啟的 BLOB,從偏移量 iOffset 開始。

成功時,sqlite3_blob_write() 返回 SQLITE_OK。否則,返回一個 錯誤碼擴展錯誤碼。除非返回 SQLITE_MISUSE,否則此函式會設定 資料庫連線 錯誤碼和訊息,可透過 sqlite3_errcode()sqlite3_errmsg() 以及相關函式存取。

如果作為第一個參數傳遞的 BLOB 控制代碼 未開啟以供寫入(sqlite3_blob_open() 的 flags 參數為零),則此函式返回 SQLITE_READONLY

此函式只能修改 BLOB 的內容;無法使用此 API 增加 BLOB 的大小。如果偏移量 iOffset 距離 BLOB 的結尾不到 N 個位元組,則返回 SQLITE_ERROR 且不寫入任何資料。BLOB 的大小(以及 N+iOffset 的最大值)可以使用 sqlite3_blob_bytes() 介面確定。如果 N 或 iOffset 小於零,則返回 SQLITE_ERROR 且不寫入任何資料。

嘗試寫入過期的 BLOB 控制代碼 會失敗,錯誤碼為 SQLITE_ABORT。在 BLOB 控制代碼 過期之前發生的對 BLOB 的寫入不會因控制代碼過期而復原,當然,這些更改可能已被使 BLOB 控制代碼過期的語句或其他獨立語句覆蓋。

此常式僅適用於先前成功呼叫 sqlite3_blob_open() 建立且尚未透過 sqlite3_blob_close() 關閉的 BLOB 控制代碼。將任何其他指標傳遞到此常式會導致未定義且可能不理想的行為。

另請參閱:sqlite3_blob_read()

另請參閱 物件常數函式 列表。