Sqlite数据库完整性检测
Posted uusystem
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sqlite数据库完整性检测相关的知识,希望对你有一定的参考价值。
/************************************************************************************************* * 函数名称: IntegrityCheck * 功能描述: 数据库完整性检测 * 输入参数: 无 * 输出参数: 无 * 返 回 值: 0:完整 / 1:损坏 * 其它说明: * 修改日期 版本号 修改人 修改内容 * ----------------------------------------------- * **************************************************************************************************/ #define DB_OK 0 /* 完整 */ #define DB_ERROR 1 /* 损坏 */ sqlite3 *obj_db; char g_objfile[255] = "DB.db3"; int IntegrityCheck(void) { /*打开数据库*/ sqlite3_open( g_objfile, &obj_db ); BOOL integrityVerified = DB_ERROR; sqlite3_stmt *integrity = NULL; // integrity_check检查包括:乱序的记录、缺页、错误的记录、丢失的索引、唯一性约束、非空约束 //if ( sqlite3_prepare_v2( obj_db, "PRAGMA integrity_check;", -1, &integrity, NULL ) == SQLITE_OK ) //quick_check不检查约束条件,耗时较短 if ( sqlite3_prepare_v2( obj_db, "PRAGMA quick_check;", -1, &integrity, NULL ) == SQLITE_OK ) { while ( sqlite3_step( integrity ) == SQLITE_ROW ) { const unsigned char *result = sqlite3_column_text( integrity, 0 ); if ( result && strcmp( ( const char * )result, (const char *)"ok" ) == 0 ) { integrityVerified = DB_OK; break; } } sqlite3_finalize( integrity ); } /*关闭数据库*/ sqlite3_close( obj_db ); return integrityVerified; }
以上是关于Sqlite数据库完整性检测的主要内容,如果未能解决你的问题,请参考以下文章
当我从用户获取数据并将其保存到 SQLite 数据库中时,我应该怎么做才能使列表视图在片段中工作
Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段
Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段