1 C
2 C++
3 Windows
4 Linux
5 数据库
- 5.1 SQL
- 5.2 Mysql
- 5.3 Oracle
- 5.5 Sqlite
- 5.6 数据库范式
- 5.7 游标
6 数据结构
7 算法
- 7.1 栈和队列
- 7.2 基本排序算法
- 7.3 合并排序
- 7.4 快速排序
- 7.5 优先级队列与堆排序
- 7.6 符号表及其基本实现
- 7.7 深度优先算法 DFS 和广度优先算法 BFS
- 7.8 桶排序
- 7.9 基数排序
8 Qt
9 AS400
10 Web
- 10.2 JavaScript
- 10.3 简述 cookie 和 session 及 token
- 10.4 Https 双向证书认证
- 10.5 URL 详解
12 C
13 框架
14 协议
15 工具
17 QA
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
5.5.1 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;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论