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

sqlite3_busy_timeout

Previous pageReturn to chapter overviewNext page

描述

 

此函数设置一个忙时处理程序,在处理表被锁定时睡眠一段指定的时间。处理程序将休眠多次,直到至少“ms”毫秒的睡眠已累积。在至少“ms”毫秒的睡眠后,处理程序返回0,这将导致sqlite3_step返回SQLITE_BUSY或SQLITE_IOERR_BLOCKED。

 

C / C ++语法

 

int sqlite3_busy_timeout(sqlite3*, int ms);

 

PB语法

 

FUNCTION sqlite3_busy_timeout ( _

BYVAL hDbc AS DWORD, _

BYVAL ms AS LONG _

) AS LONG

 

参数

 

pDb

 

[in]数据库连接句柄。

 

ms

 

[in]睡眠的毫秒数。

 

返回值

 

SQLITE_OK成功,失败时出现非零错误代码。

 

备注

 

使用小于或等于零的参数调用此函数将关闭所有繁忙的处理程序。

 

任何给定的时刻,特定的数据库连接只能有一个忙碌的处理程序。如果在调用此函数之前定义了另一个忙碌处理程序(使用sqlite3_busy_handler),那么其他忙碌处理程序将被清除。

 

C ++实现代码

 

/*

** This function installs a default busy handler that waits for the

** specified number of milliseconds before returning 0.

*/

SQLITE_API int sqlite3_busy_timeout(sqlite3 *db, int ms){

if( ms>0 ){

  db->busyTimeout = ms;

  sqlite3_busy_handler(db, sqliteDefaultBusyCallback, (void*)db);

}else{

  sqlite3_busy_handler(db, 0, 0);

}

return SQLITE_OK;

}