|
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...
};
|