其他的dbm函数现在我们已经看到基本的dbm函数,我们可以简要的介绍一下dbm所使用的其他的函数:
int dbm_delete(DBM *database_descriptor, datum key);
int dbm_error(DBM *database_descriptor);
int dbm_clearerr(DBM *database_descriptor);
datum dbm_firstkey(DBM *database_descriptor);
datum dbm_nextkey(DBM *database_descriptor);
dbm_deletedbm_delete函数用于由数据库中删除记录。与dbm_fetch类似,他也需要一个datum参数,所不同的是他并不是读取数据,而是删除数据。如果成功,则会返回0。
dbm_errordbm_error函数只是简单的测试在数据库中是否发生了错误,如果没有错误则会返回0。
dbm_clearerrdbm_clearerr函数清除在数据库中所设置的错误条件标记。
dbm_firstkey与dbm_nextkey
这两个函数用作一个函数对用于在数据库中的所有项目的键值中进行搜索。所需要循环结构如下:
DBM *db_ptr;
datum key;
for(key = dbm_firstkey(db_ptr); key.dptr; key = dbm_nextkey(db_ptr));
试验--读取与删除数据现在我们使用这些新函数来修改dbm1.c程序,得到dbm2.c程序:
1 复制dbm1.c文件,进行编辑。编辑#define TEST_DB_FILE行:
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <ndbm.h>
#include <string.h>
#define TEST_DB_FILE “/tmp/dbm2_test”
#define ITEMS_USED 3
2 然后我们需要改变的只是读取部分:
/* now try to delete some data */
sprintf(key_to_use, “bu%d”, 13);
key_datum.dptr = key_to_use;
key_datum.dsize = strlen(key_to_use);
if (dbm_delete(dbm_ptr, key_datum) == 0) {
printf(“Data with key %s deleted\n”, key_to_use);
}
else {
printf(“Nothing deleted for key %s\n”, key_to_use);
}
for (key_datum = dbm_firstkey(dbm_ptr);
key_datum.dptr;
key_datum = dbm_nextkey(dbm_ptr)) {
data_datum = dbm_fetch(dbm_ptr, key_datum);
if (data_datum.dptr) {
printf(“Data retrieved\n”);
memcpy(&item_retrieved, data_datum.dptr, data_datum.dsize);
printf(“Retrieved item - %s %d %s\n”,
item_retrieved.misc_chars,
item_retrieved.any_integer,
item_retrieved.more_chars);
}
else {
printf(“No data found for key %s\n”, key_to_use);
}
}
其输出结果如下:
$ ./dbm2
Data with key bu13 deleted
Data retrieved
Retrieved item - Third 3 baz
Data retrieved
Retrieved item - First! 47 foo
工作原理这个程序的前面部分与前面的例子相同,只是简单的在数据库中存储数据。然后我们构建一个键值来匹配第二个项目,并且将其由数据库中删除。
程序然后使用dbm_firstkey与dbm_nextkey按顺序访问数据库中的每一个键值,读取数据。注意,数据并不是按顺序读取的:不存在按键值顺序实现的检索顺序;他只是遍历所有记录的一个简单方法。
分享到:
相关推荐
用友主数据管理解决方案 用友主数据管理解决方案是企业级的主数据管理解决方案,旨在帮助企业解决主数据管理问题,提高业务效率和决策效率。该解决方案通过集成多个系统和数据库,提供统一的主数据视图,帮助企业...
本资源摘要信息将从华为制造业数据治理、数据管理与数据中台架构解决方案PPT.pptx中提取相关知识点,总结了数据治理、数据管理、数据中台架构等方面的重要概念和技术。 一、数据治理 * 数据治理是指对组织内所有...
### DAMA2数据管理知识体系解析 #### 一、数据管理的重要性及背景 在当今数字化时代,数据已经成为企业和组织的核心资产。随着技术的发展,我们能够测量各种事件和活动,从宇宙大爆炸的影响到人类的心跳,甚至能够...
"数据管理知识体系指南核心精要" DAMA-DMBOK2.0数据管理知识体系指南是数据管理领域的权威指南,由美国Technics出版社社长史蒂夫·霍伯曼等人编写。该指南对数据管理的总体框架和职能、术语、最佳实践方法进行了...
二、数据资产管理活动职能 (一) 数据模型管理 (二) 数据标准管理 (三) 数据质量管理 (四) 主数据管理 (五) 数据安全管理 (六) 元数据管理 (七) 数据开发管理 (八) 数据资产流通 (九) 数据价值评估 (十) 数据资产运营...
### 数据管理知识体系(第二版)—— DAMA-DMBOK #### 一、引言与背景 在当今数字化时代,数据已经成为企业运营的核心资产之一。随着云计算、大数据、人工智能等新兴技术的发展,数据管理的重要性日益凸显。企业...
XX银行数据管理办法知识点总结 一、数据管理概述 * 数据资产管理的定义和重要性 * 数据管理的挑战和机遇 二、数据管理的目标和原则 * 提高信息化水平和数据管理能力 * 规范数据管理和应用流程 * 树立和发挥数据...
该系统主要涉及学生基本信息管理、学生异动信息管理、学生考勤管理、学生公寓管理、学生处分管理、学生资助管理、学生表彰管理等七个方面的数据流程图。 1. 学生基本信息管理数据流图(第 2 层):该图描述了学生...
### 主数据管理办法相关知识点 #### 一、主数据管理办法概览 **主数据管理办法**旨在规范中国联通内部关于供应商基础数据的管理方式,确保供应链管理系统的完善性和数据的准确性。此办法着重强调了供应商主数据的...
数据质量管理平台需求文档知识点总结 数据质量管理平台需求文档是数据质量管理平台的建设需求文档,涵盖了数据质量管理的概念、六要素、项目背景、项目目标、业务方案、系统架构、整体要求、功能设计等方面的内容。...
【GIS空间数据管理】是GIS领域中的核心组成部分,主要关注如何有效地存储、组织、检索和管理地理信息。在本章中,我们将深入探讨空间数据库的相关概念、数据结构以及管理策略。 1. **空间数据库**:空间数据库是...
- **数据管理协调层:**负责领导与组织数据管理工作。 - **数据管理执行层:**负责具体的数据管理工作。 - 职责分配: - **数据管理协调层:**监督评审数据标准的各项工作,发布新版本数据标准。 - **数据管理...
第六层数据流图是医院信息管理系统的第七层次模型,描述了系统的出院管理流程。在这个层面上,我们可以看到系统的主要出院管理流程,例如医生对病人的出院管理、病人信息的收集、存储和共享等。 在这个层面上,我们...
基于海量图像数据管理的新难题和新的解决方案不断被提出的背景,本文在 分析了海量图像数据的产生与应用的具体背景之后,根据Hadoop系统在存储和 管理网页数据与日志数据等的成功,研究了基于Hadoop系统的大规模海量...
- **自动化水平提升**:利用数据管理工具提高数据管理效率。 - **数据资产价值提升**:促进数据资产内部与外部的开放使用,实现价值最大化。 #### 五、数据治理组织架构 - **决策层**:制定数据治理原则和目标,...
#### 七、经营分析系统元数据管理规定 **7.1 元数据质量要求** - **7.1.1 概述** - 强调了元数据质量的重要性。 - **7.1.2 本地元数据质量规定** - 明确了省级分公司在本地元数据质量管理方面的具体要求。 - **...
### EsPowerMeta元数据管理平台产品架构解析 #### 一、引言 随着信息技术的快速发展,数据成为企业和组织的核心资产之一。为了更好地管理和利用这些数据,元数据管理平台应运而生。EsPowerMeta元数据管理平台是一款...
数据管理办法是指为了提高XX的数据管理水平,规范数据管理工作,促进XX数据的规划、整合、共享、开放和应用,充分发挥数据管理在深化改革、创新管理中的重要作用,推动XX的数字化转型而制定的管理方法。 数据管理的...
电子信息、矿山物探设备、神经网络、数据管理 七、结语 本文提出基于神经网络的矿山物探设备电子信息管理系统设计,旨在解决矿山物探设备电子信息管理问题,提高矿山生态管理开发利用的效率。该系统具有智能化、...
### 基于风险的数据完整性管理实践指南 #### 一、通用部分 ##### 1.1 引言 本指南旨在提供一个结构化的框架来帮助制药行业中的组织机构有效地管理和控制其数据完整性风险。随着技术的进步及法规环境的变化,确保...