20(数据库函数库)
2016-04-25 16:03
183 查看
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函数
相关文章推荐
- SqlServer索引及优化详解
- Sql语句优化--经典收藏
- 几种使用sql写法
- ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
- SQL性能优化常见措施(Lock wait timeout exceeded)
- redis快速入门
- windows下安装redis
- Oracle数据库合并行记录,WMSYS.WM_CONCAT 函數的用法
- mysql新的一天重新累加计数(新的一天重新自增长)
- mysql服务器查询慢原因分析方法
- mysql服务器查询慢原因分析方法
- oracle-2中commit 详解
- MySQL(七) —— MySQL存储过程 & 存储引擎
- 十五oracle 触发器
- 十四 oracle 视图
- Oracle EBS 高级定价中定价属性的定义过程
- 十三oracle --控制结构(分支,循环,控制)
- Oracle多表查询
- MongoDB3.2中与DB数据库操作相关常用方法介绍
- debug下数据库连接的问题