勇芳软件工作室.汉化:  SQLite3 API Functions > Blobs >

sqlite3_blob_close

Previous pageReturn to chapter overviewNext page

描述

 

关闭一个开放的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;

}