Matricsoft - software development
products > Quickdb > class definition (header file)
description
database creation
table creation
record creation
record retrieval
record operations
file operations
database operations
definition operations
exceptions
relations
header file

Class definition

class db  
{
public:
 db(string const & name, int data_version=1);
 ~db();

/*************************
*     table creation      *
**************************/
 void new_table();
 int add_field(string const & field_name, EType field_type);
 int add_field_ref(string const & field_name, string const & table_name);
 int commit_table(string const & table_name);

/*************************
*     record creation     *
**************************/
 void new_record(string const & table_name);
 void new_record(int table_number);
 //operations with strings
 void set_field(string const & field_name, int field_value);
 void set_field(string const & field_name, long field_value);
 void set_field(string const & field_name, string field_value);
 void set_field_ref(string const & field_name, int field_value);
 //operations with ints
 void set_field(int field_number, long field_value);
 void set_field(int field_number, int field_value);
 void set_field(int field_number, string field_value);
 void set_field_ref(int field_number, int field_value);

 int commit_record(int record_number=-1);

/***********************************
*     general record operations     *
************************************/
 //operations with strings
 bool record_exist(string const & table_name, int record_number);
 int get_number_records(string const & table_name);
 void delete_record(string const & table_name, int record_number);

 //operations with ints
 bool record_exist(int table_number, int record_number);
 int get_number_records(int table_number);
 void delete_record(int table_number, int record_number);

/***********************************
*     operations on definitions     *
************************************/
 //operations with strings
 EType get_field_type(string const & table_name, string const & field_name) ;
 string get_field_ref_relation(string const & table_name, int field_number) ;
 int get_field_index(string const & table_name, string const & field_name) ;
 string get_field_name(string const & table_name, int field_number) ;
 int get_number_field(string const & table_name);

 //operations with ints
 EType get_field_type(int table_number, string const & field_name) ;
 string get_field_ref_relation(int table_number, int field_number) ;
 int get_field_index(int table_number, string const & field_name) ;
 string get_field_name(int table_number, int field_number) ;
 int get_number_field(int table_number) ;

/*********************************
*     record value retrieval      *
**********************************/

 //operations with strings
 int get_field_int(string const & table_name, int record_number, string const & field_name);
 long get_field_long (string const & table_name, int record_number, string const & field_name);
 string get_field_string(string const & table_name, int record_number, string const & field_name);
 int get_field_ref(string const & table_name, int record_number, string const & field_name);

 int get_number_children(string const & table_name, int record_number, string const & child_table_name);
 int get_child(string const & table_name, int record_number, string const & child_table_name, int index_child);

 //operations with ints
 int get_field_int(int table_number, int record_number, int field_number);
 long get_field_long(int table_number, int record_number, int field_number);
 string get_field_string(int table_number, int record_number, int field_number);
 int get_field_ref(int table_number, int record_number, int field_number);

 int get_number_children(int table_number, int record_number, int child_table);
 int get_child(int table_number, int record_number, int child_table_number, int index_child);

/**************************************
*     file operations                  *
***************************************/
 bool read_from_file(string const & filename);
 bool save_to_file(string const & filename);
/**************************************
*     general database operations      *
***************************************/
public:
 void erase_data();
 bool table_exist(int table_number);	
 int get_table_index(string const & table_name);
 string get_table_name(int table_index);
 void delete_table(int table_index);
 int get_number_tables(); 
private:
 //private objects also defined...
};