Small. Fast. Reliable.
Choose any three.

SQLite C接口

将数据递增写入BLOB

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

此函数用于将数据从调用者提供的缓冲区写入打开的BLOB句柄中。从偏移量iOffset开始,将N字节的数据从缓冲区Z复制到打开的BLOB中。

成功时,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且不写入任何数据。可以使用sqlite3_blob_bytes()接口确定BLOB的大小(以及N + iOffset的最大值。如果N或iOffset小于零,则返回SQLITE_ERROR且不写入任何数据。

尝试写入过期的BLOB句柄失败,错误代码为SQLITE_ABORT。在BLOB句柄过期之前发生的对BLOB的写操作不会因该句柄的过期而回滚,尽管这些更改当然可能已由使BLOB句柄过期的语句或其他独立语句覆盖。

此例程仅适用于BLOB句柄,该句柄是由先前对sqlite3_blob_open()的成功调用创建的,并且尚未由sqlite3_blob_close()关闭。将任何其他指针传递给该例程将导致未定义的行为,并且可能是不良行为。

另请参见:sqlite3_blob_read()

另请参见 对象常量函数的列表