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

sqlite3_status

Previous pageReturn to chapter overviewNext page

描述

 

检索有关SQLite性能的运行时状态信息,并可选择重置各种高水位标记。

 

C / C ++语法

 

int sqlite3_status(

int op,

int *pCurrent,

int *pHighwater,

int resetFlag

);

 

PB语法

 

FUNCTION sqlite3_status ( _

BYVAL op AS LONG, _

BYREF pCurrent AS LONG, _

BYREF pHighwater AS LONG, _

BYVAL resetFlag AS LONG _

) AS LONG

 

参数

 

op

 

[in]特定satus参数的整数代码

 

pCurrent

 

[out]指向接收当前参数值的LONG变量的指针。

 

resetFlag

 

[out]指向接收参数最高记录值的LONG变量的指针。

 

resetFlag

 

[in]TRUE或FALSE。如果为true,则在此接口调用返回后,计数器将重置为零。

 

返回值

 

成功时返回SQLITE_OK,失败时返回非零错误代码。

 

备注

 

此函数用于检索关于SQLite性能的运行时状态信息,并可选择重置各种高水位标记。第一个参数是要测量的特定参数的整数代码。识别的整数代码的形式为SQLITE_STATUS _参数的当前值返回到pCurrent.记录的最高值在pHighwater中返回。如果复位标志为真,则写入pHighwater之后,最高记录值将被重置。一些参数不记录最高值。对于这些参数,没有任何内容写入pHighwater,并且复位标志被忽略。其他参数仅记录高水位标记而不是当前值。对于这些后一个参数,没有任何内容写入pCurrent.

 

此函数是线程安全的,但不是原子的。当其他线程运行相同或不同的SQLite接口时,可以调用此函数。然而,pCurrentpHighwater中返回的值反映了SQLite在不同时间点的状态,并且有可能另一个线程可能会在编写pCurrentpHighwater的时间之间更改参数。

 

C ++实现代码

 

/*

** Query status information.

**

** This implementation assumes that reading or writing an aligned

** 32-bit integer is an atomic operation.  If that assumption is not true,

** then this function is not threadsafe.

*/

SQLITE_API int sqlite3_status(int op, int *pCurrent, int *pHighwater, int resetFlag){

wsdStatInit;

if( op<0 || op>=ArraySize(wsdStat.nowValue) ){

  return SQLITE_MISUSE_BKPT;

}

*pCurrent = wsdStat.nowValue[op];

*pHighwater = wsdStat.mxValue[op];

if( resetFlag ){

  wsdStat.mxValue[op] = wsdStat.nowValue[op];

}

return SQLITE_OK;

}