前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >20(数据库函数库)

20(数据库函数库)

作者头像
提莫队长
发布2019-02-21 10:43:25
6450
发布2019-02-21 10:43:25
举报
文章被收录于专栏:刘晓杰刘晓杰刘晓杰

1 常用函数

#include "apue_db.h"
//打开数据库
DBHANDLE db_open(const char *pathname, int oflag, ... /* int mode */);
        Returns: database handle if OK, NULL on error

//关闭数据库
void db_close(DBHANDLE db);

//当向数据库加入一条新的纪录时,必须指明此记录的键以及和此键相关联的数据。
int db_store(DBHANDLE db, const char *key, const char *data, int flag);
        Returns: 0 if OK, nonzero on error (see following)
        //参数key和data是由null结束的字符串。
        //flag参数只能是DB_INSERT、DB_REPLACE、DB_STORE(加入或者替换,只要合适无论哪一种都可以)。

//通过提供key可以取记录
#include "apue_db.h"
char *db_fetch(DBHANDLE db, const char *key);
            Returns: pointer to data if OK, NULL if record not found

//通过提供key可以删除记录
#include "apue_db.h"
int db_delete(DBHANDLE db, const char *key);
            Returns: 0 if OK, 1 if record not found

//先调用db_rewind回滚到数据库的第一条记录,然后在每一次循环中调用db_nextrec顺序读每一条记录
void db_rewind(DBHANDLE db);
char *db_nextrec(DBHANDLE db, char *key);
        Returns: pointer to data if OK, NULL on end of file
        //db_nextrec不保证访问次序,只保证每条记录被恰好访问一次。

Figure 20.3. Create a database and write three records to it

#include "apue.h"
#include "apue_db.h"
#include <fcntl.h>
int main(void)
{
    DBHANDLE    db;

    if ((db = db_open("db4", O_RDWR | O_CREAT | O_TRUNC, FILE_MODE)) == NULL)
        err_sys("db_open error");

    if (db_store(db, "Alpha", "data1", DB_INSERT) != 0)
        err_quit("db_store error for alpha");
    if (db_store(db, "beta", "Data for beta", DB_INSERT) != 0)
        err_quit("db_store error for beta");
    if (db_store(db, "gamma", "record3", DB_INSERT) != 0)
        err_quit("db_store error for gamma");

    db_close(db);
    exit(0);
}

2 集中式或非集中式

(1)集中式 由一个进程作为数据库管理者,所有的数据库访问工作由此进程完成。其他进程通过IPC机制与此中心进行联系 (2)非集中式 每个库独立申请并发控制(加锁),然后自己调用IO函数

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年04月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 常用函数
  • 2 集中式或非集中式
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档