描述
关闭一个开放的BLOB句柄。
C / C ++语法
int sqlite3_blob_close(sqlite3_blob *); |
PB语法
FUNCTION sqlite3_blob_close ( _ BYVAL pBlob AS DWORD _ ) AS LONG |
参数
pBlob
[in]blob句柄。
返回值
SQLITE_OK成功或错误代码如果出现问题。
备注
如果没有其他BLOB,没有未决准备的语句,并且数据库连接处于自动提交模式,则关闭BLOB将导致当前事务提交。如果对BLOB进行任何写入,则可能会将其保存在缓存中,直到关闭操作(如果它们适合)。
关闭BLOB通常会将更改强制更改为磁盘,因此,如果发生任何I / O错误,则可能会在BLOB关闭时发生。关闭期间发生的任何错误都将报告为非零返回值。
BLOB无条件关闭。即使该函数返回错误代码,BLOB仍然是关闭的。
使用空指针调用此函数(例如由失败的调用sqlite3_blob_open返回的函数是无害的操作。
C ++实现代码
/*
** Close a blob handle that was previously created using
** sqlite3_blob_open().
*/
SQLITE_API int sqlite3_blob_close(sqlite3_blob *pBlob){
Incrblob *p = (Incrblob *)pBlob;
int rc;
sqlite3 *db;
if( p ){
db = p->db;
sqlite3_mutex_enter(db->mutex);
rc = sqlite3_finalize(p->pStmt);
sqlite3DbFree(db, p);
sqlite3_mutex_leave(db->mutex);
}else{
rc = SQLITE_OK;
}
return rc;
}