您的位置:首页 > 数据库

GoAhead2.5源代码分析之2-文件数据库(emfdb.c)

2016-05-19 10:37 211 查看
Emfdb.c(文件数据库)

数据库按照下面结构体存放

typedef struct dbTable_s {

char_t *name;

int nColumns;

char_t **columnNames;

int *columnTypes;

int nRows;

int **rows;

} dbTable_t;

每个table对应上面结构的一个变量。

Name是table的名字

nColumns是table有多少列

columnNames是各个列的名字

columnTypes是各个列中内容的类型,是字符串,还是整数

nRows是table有多少行

rows是:rows
指向各个行的指针,rows
[m]是该行某个列整数的值或字符串的指针。

int dbRegisterDBSchema(dbTable_t *pTableRegister)

功能:创建一个table框架

说明:

int dbOpen(char_t *tablename, char_t *filename, int (*gettime)(int did), int flags)

功能: 一些初始化

说明:

void dbClose(int did)

功能: 释放tables所在的内存

说明:

void dbZero(int did)

功能: 清空tables中的所有数据,释放内存。

说明:

int dbSearchStr(int did, char_t *tablename, char_t *colName, char_t *value, int flags)

功能:根据表单名字、列名、列值,找到对应的row

说明:

int dbAddRow(int did, char_t *tablename)

功能:向名字为tablename中添加一row

说明:

int dbDeleteRow(int did, char_t *tablename, int row)

功能: 删除名字为tablename的table的一row

说明:

int dbSetTableNrow(int did, char_t *tablename, int nNewRows)

功能: 添加row,使其行数为nNewRows

说明:

int dbGetTableNrow(int did, char_t *tablename)

功能: 获得这个table的行数

说明:

int dbReadInt(int did, char_t *table, char_t *column, int row, int *returnValue)

功能:读取指定行、列的值,读取的值是整数值

说明:

int dbReadStr(int did, char_t *table, char_t *column, int row, char_t **returnValue)

功能: 读取指定行、列的值,读取的值是字符串

说明:

int dbWriteInt(int did, char_t *table, char_t *column, int row, int iData)

功能: 向指定行、列写整数

说明:

int dbWriteStr(int did, char_t *table, char_t *column, int row, char_t *s)

功能: 向指定行列写字符串

说明:

static int dbWriteKeyValue(int fd, char_t *key, char_t *value)

功能: 向文件中些key=value

说明:

int dbSave(int did, char_t *filename, int flags)

功能:将数据库(动态分配的内存)中值存放到文件中

说明:

static int crack(char_t *buf, char_t **key, char_t **val)

功能: 获得key=value字符串中的key和value

说明:

int dbLoad(int did, char_t *filename, int flags)

功能: 将文件中的数据存到数据库中

说明:

int dbGetTableId(int did, char_t *tablename)

功能: 获取table的id

说明:

char_t *dbGetTableName(int did, int tid)

功能: 获取table的名字

说明:

static char_t *trim(char_t *str)

功能: 去掉字符串中的空格

说明:

static int GetColumnIndex(int tid, char_t *colName)

功能: 获得指定名字的列的索引

说明:

void basicSetProductDir(char_t *proddir)

功能: 设置数据库文件的路径

说明:

char_t *basicGetProductDir()

功能: 获得数据库文件的路径

说明:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: