描述
尝试从指定的数据库连接释放尽可能多的堆内存。与sqlite3_release_memory不同,即使省略了SQLITE_ENABLE_MEMORY_MANAGEMENT编译时选项,此函数也会生效。
C / C ++语法
int sqlite3_db_release_memory(sqlite3*); |
PB语法
FUNCTION sqlite3_db_release_memory ( _ BYVAL hDbc AS DWORD _ ) AS LONG |
参数
pDb
[in]数据库连接句柄。必须是从sqlite3_open,sqlite3_open16或sqlite3_open_v2获取的sqlite3对象指针。 数据库连接不能关闭。
返回值
字节数释放。
C ++实现代码
/*
** Free up as much memory as we can from the given database
** connection.
*/
SQLITE_API int sqlite3_db_release_memory(sqlite3 *db){
int i;
sqlite3_mutex_enter(db->mutex);
sqlite3BtreeEnterAll(db);
for(i=0; i<db->nDb; i++){
Btree *pBt = db->aDb[i].pBt;
if( pBt ){
Pager *pPager = sqlite3BtreePager(pBt);
sqlite3PagerShrink(pPager);
}
}
sqlite3BtreeLeaveAll(db);
sqlite3_mutex_leave(db->mutex);
return SQLITE_OK;
}