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

sqlite3_reset

Previous pageReturn to chapter overviewNext page

描述

 

将准备好的语句对象重置为初始状态,准备重新执行。使用sqlite3_bind_*()API绑定的值的任何SQL语句变量都保留其值。使用sqlite3_clear_bindings重置绑定。

 

C / C ++语法

 

int sqlite3_reset(sqlite3_stmt *pStmt);

 

PB语法

 

FUNCTION sqlite3_reset ( _

BYVAL hStmt AS DWORD, _

) AS LONG

 

参数

 

pStmt

 

[in]准备好的语句句柄。

 

返回值

 

如果最近调用sqlite3_step(S)对于准备好的语句S返回SQLITE_ROW或SQLITE_DONE,或者如果sqlite3_step(S)从未在S上调用,则sqlite3_reset(S)返回SQLITE_OK。

 

如果最近调用sqlite3_step(S)对于准备好的语句S表示错误,则sqlite3_reset(S)返回相应的错误代码。

 

C ++实现代码

 

/*

** Terminate the current execution of an SQL statement and reset it

** back to its starting state so that it can be reused. A success code from

** the prior execution is returned.

**

** This function sets the error code and string returned by

** sqlite3_errcode(), sqlite3_errmsg() and sqlite3_errmsg16().

*/

SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt){

int rc;

if( pStmt==0 ){

  rc = SQLITE_OK;

}else{

  Vdbe *v = (Vdbe*)pStmt;

  sqlite3_mutex_enter(v->db->mutex);

  rc = sqlite3VdbeReset(v);

  sqlite3VdbeRewind(v);

  assert( (rc & (v->db->errMask))==rc );

  rc = sqlite3ApiExit(v->db, rc);

  sqlite3_mutex_leave(v->db->mutex);

}

return rc;

}