⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 db.h

📁 数据库C语言开发工具包,可以方便地移植到嵌入式系统中
💻 H
📖 第 1 页 / 共 2 页
字号:
	short               n_size;	/* name size		     */
	char		    data;	/* first char of the data    */
				        /* name follows data         */
};

typedef struct db_dict_obj  *DOBJ;

struct db_dict_hdr
{	ushort  magic;			/* Magic Number		     */
	DOBJ	htbl[DICT_HASH_SIZE];	/* Hash Table		     */
};

typedef struct db_dict_hdr  *DICT;

#define DB_FILE_NOT_FOUND      1
#define DB_READ_ERROR          2
#define DB_END_OF_FILE         3
#define DB_WRITE_ERROR         4
#define DB_FILE_NOT_CREATED    5
#define DB_FILE_NOT_OPEN       6
#define DB_INVALID_BLOCK       7
#define DB_BUFFER_ERROR        8
#define DB_NO_CURRENT_REC      9
#define DB_DELETED_REC        10
#define DB_INVALID_FREE       11
#define DB_INVALID_BLK_SIZE   12
#define DB_INVALID_INDEX      13
#define DB_REC_NOT_FOUND      14
#define DB_DUP_NOT_ALLOWED    15
#define DB_INVALID_REQUEST    16
#define DB_INVALID_RANDOM     17
#define DB_INVALID_FHDR       18
#define DB_VERSION_ERROR      19
#define DB_INVALID_LINK       20
#define DB_LINK_ERROR         21
#define DB_FTYPE_ERROR        22
#define DB_INVALID_OPTION     23
#define DB_ALLOC_ERROR        24
#define DB_VAR_SIZE_ERROR     25
#define DB_VAR_CSUM_ERROR     26
#define DB_UNSUPP_FEATURE     27
#define DB_INVALID_DICT       28
#define DB_INVALID_NAME       29
#define DB_INVALID_ERROR      30
#define DB_LAST_ERROR         30

extern int    db_error;
extern ulong  db_match_blk;
extern ushort db_match_rec;
extern ulong  db_add_blk;
extern ushort db_add_rec;

#ifdef ANSI
/*
 *	db_main defs
 */

    struct db_data_file *db_create(char *,char *, char *);
    void db_fhdr_create(struct db_file_hdr *);
    struct db_data_file *db_open(char *,char *);
    void db_fhdr_open(struct db_file_hdr *);
    struct db_data_file *db_close(struct db_data_file *);
    void db_delete(struct db_data_file *);
    unsigned long db_get_rec_no(struct db_data_file *);
    void db_check_df(struct db_data_file *);
    void db_extend(struct db_data_file *,struct db_data_buf *);
    void db_get_next_avail(struct db_data_file *,struct db_data_buf *);
    void db_free_rec(struct db_data_file *,struct db_data_buf *);
    void db_get_blk(struct db_data_file *,long ,struct db_data_buf *);
    void db_put_blk(struct db_data_file *,struct db_data_buf *);
    struct db_data_buf *db_alloc_buf(int );
    struct db_data_buf *db_free_buf(struct db_data_buf *);
    void db_free_df(struct db_data_file *);
    char *db_error_msg(int );
    
    unsigned long db_add();
    void db_read_first();
    void db_read_next();
    void db_read_last();
    void db_read_prev();
    void db_find();
    void db_update();
    void db_read_direct();
    void db_read_atr();
    void db_update_atr();
/*
 *	db_seq defs
 */

    void db_add_seq(struct db_data_file *,char *);
    void db_read_first_seq(struct db_data_file *,char *);
    void db_read_next_seq(struct db_data_file *,char *);
    void db_read_last_seq(struct db_data_file *,char *);
    void db_read_prev_seq(struct db_data_file *,char *);
    void db_update_seq(struct db_data_file *,char *);

/*
 *	db_ran defs
 */

    void db_add_ran(struct db_data_file *,char *);
    void db_find_ran(struct db_data_file *,char *,char *);
    void db_read_first_ran(struct db_data_file *,char *);
    void db_read_next_ran(struct db_data_file *,char *);
    void db_read_last_ran(struct db_data_file *,char *);
    void db_read_prev_ran(struct db_data_file *,char *);
    void db_update_ran(struct db_data_file *,char *);
    void db_delete_ran(struct db_data_file *);
    void db_delete_blk_ran(struct db_data_file *,unsigned long );
    short db_hash_ran(struct db_data_file *,char *);
    short db_search_blk_ran(struct db_data_file *,char *,struct db_data_buf *);

/*
 *	db_idx defs
 */

    void db_add_idx(struct db_data_file *,char *);
    void db_find_insert_idx(struct db_data_file *,char *,int );
    void db_split_blk_idx(struct db_data_file *);
    void db_read_first_idx(struct db_data_file *,int ,char *);
    void db_read_next_idx(struct db_data_file *,char *);
    void db_read_last_idx(struct db_data_file *,int ,char *);
    void db_read_prev_idx(struct db_data_file *,char *);
    void db_get_parent_idx(struct db_data_file *);
    void db_find_first_idx(struct db_data_file *,char *,char *,int );
    void db_delete_idx(struct db_data_file *);
    short db_move_to_leaf_idx(struct db_data_file *);
    void db_balance_idx(struct db_data_file *);
    void db_update_idx(struct db_data_file *,char *);

/*
 *	db_link defs
 */

    void db_add_member_first(DB_LINK);
    void db_add_member_last(DB_LINK);
    void db_delete_member(DB_LINK);
    long db_find_first_member(DB_LINK);
    long db_find_last_member(DB_LINK);
    long db_find_prev_member(DB_LINK);
    long db_find_next_member(DB_LINK);
    long db_find_owner(DB_LINK);
    void db_check_link(DB_LINK);
    int  db_olink_offset(DATA_FILE, int);
    int  db_mlink_offset(DATA_FILE, int);

/*
 * dict defs
 */

    int  db_dict_hash(char *);
    DICT db_dict_init();
    void *db_dict_add(DICT, char *, int, int, void *);
    void db_dict_delete(DICT, char *, int);
    void db_dict_delete_all(DICT, int);
    void *db_dict_find(DICT, char *, int);
    int  db_dict_find_all(DICT, int, char ***, void ***);
    void db_dict_load(DICT, char *, char *);
    void db_dict_dump(DICT, char *, char *);
    void db_dict_close(DICT);

#else
/*
 *	db_main defs
 */

    DATA_FILE db_create();
    void db_fhdr_create();
    DATA_FILE db_open();
    void db_fhdr_open();
    DATA_FILE db_close();
    unsigned long db_add();
    void db_read_first();
    void db_read_next();
    void db_read_last();
    void db_read_prev();
    void db_find();
    void db_update();
    void db_delete();
    unsigned long db_get_rec_no();
    void db_read_direct();
    void db_read_atr();
    void db_update_atr();
    void db_check_df();
    void db_extend();
    void db_get_next_avail();
    void db_free_rec();
    void db_get_blk();
    void db_put_blk();
    struct db_data_buf *db_alloc_buf();
    struct db_data_buf *db_free_buf();
    void db_free_df();
    char *db_error_msg();

/*
 *	db_seq defs
 */

    void db_add_seq();
    void db_read_first_seq();
    void db_read_next_seq();
    void db_read_last_seq();
    void db_read_prev_seq();
    void db_update_seq();

/*
 *	db_ran defs
 */

    void db_add_ran();
    void db_find_ran();
    void db_read_first_ran();
    void db_read_next_ran();
    void db_read_last_ran();
    void db_read_prev_ran();
    void db_update_ran();
    void db_delete_ran();
    void db_delete_blk_ran();
    short db_hash_ran();
    short db_search_blk_ran();

/*
 *	db_idx defs
 */

    void db_add_idx();
    void db_find_insert_idx();
    void db_split_blk_idx();
    void db_read_first_idx();
    void db_read_next_idx();
    void db_read_last_idx();
    void db_read_prev_idx();
    void db_get_parent_idx();
    void db_find_first_idx();
    void db_delete_idx();
    short db_move_to_leaf_idx();
    void db_balance_idx();
    void db_update_idx();

/*
 *	db_link defs
 */

    void db_add_member_first();
    void db_add_member_last();
    void db_delete_member();
    long db_find_first_member();
    long db_find_last_member();
    long db_find_prev_member();
    long db_find_next_member();
    long db_find_owner();
    void db_check_link();
    int  db_olink_offset();
    int  db_mlink_offset();

/*
 * dict defs
 */

    db_dict_hash();
    DICT db_dict_init();
    void *db_dict_add();
    void db_dict_delete();
    void db_dict_delete_all();
    void *db_dict_find();
    db_dict_find_all();
    void db_dict_load();
    void db_dict_dump();
    void db_dict_close();
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -