www.pudn.com > jpeg1.zip > C_BASE.H


/***************************************************/ 
/*----------C_base.h-------------------------------*/ 
/*-----Relational Database Management Engine-------*/ 
/* Copyright:WangHaiyun      HiSoft                */ 
/* Date:1996/08/01                                 */ 
/* Last Modified:                                  */ 
/***************************************************/ 
 
#ifndef YES 
  #define YES   1 
  #define NO    0 
#endif 
#define MAX_FIELD_LEN 255 
 
/*------Data type definitons------*/ 
typedef struct 
{ 
char field_name[11]; 
char field_type; 
char field_len; 
char field_dec; 
int  field_pos; 
}DBF_STRU; 
 
typedef struct 
{ 
int handle; 
struct date modify_date; 
long rec_count; 
unsigned stru_len; 
int fld_count; 
int rec_len; 
DBF_STRU *dbf_stru; 
long rec_no; 
char *curr_rec; 
int eof; 
int update_tag; 
}DBF; 
 
typedef struct 
{ 
char modify_tag; 
char field_type; 
unsigned long addr; 
unsigned long len; 
}GRAPH_TEXT; 
 
typedef struct 
{ 
  int handle; 
  unsigned long filesize; 
}DBT; 
 
typedef unsigned char NODE; 
 
typedef struct 
{ 
int handle; 
long filesize; 
long node_position; 
long root_position; 
int  i_p_node; 
int  text_len; 
char *key; 
char key_type; 
int  key_len; 
NODE *node; 
int node_type; 
int i_count; 
long pre_node; 
long suc_node; 
NODE *i_front; 
NODE *i_rear; 
NODE *i_curr; 
int update_tag; 
}IDX; 
 
/*-----macro definition in C_base-------*/ 
#define reccount(dbf)      (dbf->rec_count) 
#define recno(dbf)         (dbf->rec_no) 
#define isdeleted(dbf)     (*(dbf->curr_rec)=='*') 
#define eof_DBF(dbf)       (dbf->eof) 
#define go_record(dbf,r_no) skip((dbf),(r_no)-dbf->rec_no) 
#define display(dbf)       printf("%6d",dbf->rec_no);\ 
                           printf("%s\n",dbf->curr_rec) 
#define field_name(dbf,field_no)  ((dbf)->dbf_stru[(field_no)-1].field_name) 
 
/*------library function declaration------*/  
long _Cdecl diffdate   (struct date d1,struct date d2); 
DBF *_Cdecl use        (char *dbf_name); 
int  _Cdecl close_DBF  (DBF *dbf); 
long _Cdecl get_record (DBF *dbf,char *fmt,...); 
long _Cdecl put_record (DBF *dbf,char *fmt,...); 
long _Cdecl skip       (DBF *dbf,int step); 
DBF  *_Cdecl create_DBF (char *dbf_name,int fld_count, 
                        DBF_STRU *dbf_stru); 
long _Cdecl append_blank (DBF *dbf); 
long _Cdecl pack        (DBF *dbf); 
int  _Cdecl zap         (DBF *dbf); 
long _Cdecl delete     (DBF *dbf); 
long _Cdecl recall     (DBF *dbf); 
int  _Cdecl field_no    (DBF *dbf,char *fields_name); 
DBF  *_Cdecl project    (char *dest_name,DBF *sour, 
                       int para_num,...); 
DBF *_Cdecl join       (char *dest_name,DBF *sour1,DBF *sour2,int  
       field_no1,int field_no2); 
 
DBT *_Cdecl create_DBT(char *dbt_name); 
DBT *_Cdecl open_DBT(char* dbt_name); 
int _Cdecl close_DBT(DBT *dbt); 
int _Cdecl put_gt(DBF *dbf,int field_no,DBT *dbt, 
                 long info_len,void *buff,int type);   
int _Cdecl get_gt(DBF *dbf,int field_no,DBT *dbt, 
                 void *buff);   
int _Cdecl file_to_gt(DBF *dbf,int field_no,DBT *dbt, 
            char *filename,int type); 
int _Cdecl gt_to_file(DBF *dbf,int field_no,DBT *dbt, 
            char *filename); 
int _Cdecl delete_gt(DBF *dbf,int field_no); 
int _Cdecl pack_gt(DBF *dbf,int field_no, 
                   char *.old_dbt_name, 
                   char *new_dbt_name);