描述
此函数设置一个忙时处理程序,在处理表被锁定时睡眠一段指定的时间。处理程序将休眠多次,直到至少“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;
}