#include <hk_database.h>
Public Types | |
| enum | enum_storage { st_overwrite, st_storechanges } |
| enum | enum_storagemode { central, local } |
Public Member Functions | |
| virtual bool | set_name (const hk_string &n) |
| hk_string | name (void) |
| vector< hk_string > * | tablelist (bool with_systemtable=false) |
| vector< hk_string > * | viewlist () |
| vector< hk_string > * | tableviewlist (bool with_systemtable=false) |
| vector< hk_string > * | querylist (void) |
| vector< hk_string > * | formlist (void) |
| vector< hk_string > * | reportlist (void) |
| vector< hk_string > * | modulelist (void) |
| hk_datasource * | new_table (const hk_string &name="", hk_presentation *p=NULL) |
| hk_datasource * | new_resultquery (hk_presentation *p=NULL) |
| hk_actionquery * | new_actionquery (void) |
| hk_datasource * | new_view (const hk_string &name="", hk_presentation *p=NULL) |
| hk_datasource * | load_datasource (const hk_string &name, datasourcetype dt=dt_table, hk_presentation *p=NULL) |
| virtual bool | delete_table (const hk_string &table, enum_interaction x=interactive) |
| virtual bool | delete_view (const hk_string &view, enum_interaction x=interactive) |
| bool | table_exists (const hk_string &tablename) |
| bool | view_exists (const hk_string &viewname) |
| bool | query_exists (const hk_string &queryname) |
| bool | form_exists (const hk_string &formname) |
| bool | report_exists (const hk_string &reportname) |
| hk_connection * | connection (void) const |
| ofstream * | savestream (const hk_string &name, filetype type, bool ask_before_overwrite=true) |
| ofstream * | savestream (const hk_string &name, filetype type, bool ask_before_overwrite, bool with_header, bool ask_for_new_name=false) |
| ofstream * | savestream (enum_storage storage, const hk_string &name, filetype type, bool ask_before_overwrite, bool with_header, bool ask_for_new_name) |
| STRINGSTREAM * | savestringstream (filetype type) |
| STRINGSTREAM * | savestringstream (filetype type, bool with_header) |
| bool | delete_file (const hk_string &name, filetype type, enum_interaction x=interactive) |
| hk_presentation * | existing_presentation (const hk_string &name, hk_presentation::enum_presentationtype t) |
| hk_form * | existing_form (const hk_string name) |
| hk_report * | existing_report (const hk_string name) |
| void | save (const hk_string &statement, const hk_string &name, filetype type, bool ask_before_overwrite=true, bool ask_for_new_name=false) |
| void | save (enum_storage storage, const hk_string &statement, const hk_string &name, filetype type, bool ask_before_overwrite=true, bool ask_for_new_name=false) |
| hk_string | load (const hk_string &name, filetype type) |
| xmlNodePtr | xmlload (const hk_string &name, filetype type) |
| hk_string | database_path (void) |
| hk_string | fileendings (filetype e) |
| hk_string | fileendings (objecttype e) |
| bool | copy_table (hk_datasource *fromdatasource, bool schema_and_data, bool replacetable, bool ask, progress_dialogtype *progressdialog=NULL) |
| bool | copy_view (hk_datasource *fromdatasource, progress_dialogtype *progressdialog=NULL, const hk_string &newname="") |
| hk_form * | new_formvisible (void) |
| hk_form * | new_dialogformvisible (void) |
| hk_report * | new_reportvisible (void) |
| hk_dstable * | new_tablevisible (void) |
| hk_dsquery * | new_queryvisible (void) |
| void | set_usewidgetparent (hk_class *) |
| bool | rename_table (const hk_string &originalname, const hk_string &newname, enum_interaction x=interactive) |
| bool | rename_file (const hk_string &originalname, const hk_string &newname, filetype type, enum_interaction x=interactive) |
| void | disable (void) |
| bool | store_connectionfile (const hk_url &url, bool store_password=false) |
| void | set_storagemode (filetype, enum_storagemode load, enum_storagemode store) |
| enum_storagemode | storagemode (filetype) |
| enum_storagemode | loadmode (filetype) |
| bool | create_centralstoragetable (void) |
| bool | has_centralstoragetable (void) |
| hk_string | load_local (const hk_string &name, filetype type) |
| hk_string | load_central (const hk_string &name, filetype type) |
| xmlNodePtr | xmlload_local (const hk_string &name, filetype type) |
| xmlNodePtr | xmlload_central (const hk_string &name, filetype type) |
| void | save_local (enum_storage storage, const hk_string &statement, const hk_string &name, filetype type, bool ask_before_overwrite, bool ask_for_new_name) |
| void | save_local (const hk_string &statement, const hk_string &name, filetype type, bool ask_before_overwrite, bool ask_for_new_name) |
| void | save_central (const hk_string &statement, const hk_string &name, filetype type, bool ask_before_overwrite, bool ask_for_new_name) |
| void | save_central (enum_storage storage, const hk_string &statement, const hk_string &name, filetype type, bool ask_before_overwrite, bool ask_for_new_name) |
| bool | delete_localfile (const hk_string &name, filetype type, enum_interaction x=interactive) |
| bool | delete_centralfile (const hk_string &name, filetype type, enum_interaction x=interactive) |
| vector< hk_string > * | filelist (filetype type) |
| vector< hk_string > * | local_filelist (filetype type) |
| vector< hk_string > * | central_filelist (filetype type) |
| void | save_configuration (void) |
| list< hk_presentation * > * | presentationlist () const |
| void | set_databasecharset (const hk_string &charset) |
| hk_string | databasecharset (void) const |
| void | set_automatic_data_update (bool u) |
| bool | is_automatic_data_update (void) |
Static Public Member Functions | |
| static void | set_new_formvisiblefunction (newform_type *) |
| static void | set_new_dialogformvisiblefunction (newform_type *) |
| static void | set_new_reportvisiblefunction (newreport_type *) |
| static void | set_new_tablevisiblefunction (newtable_type *) |
| static void | set_new_queryvisiblefunction (newquery_type *) |
Protected Member Functions | |
| hk_database (hk_connection *c) | |
| bool | select_db (const hk_string &newname) |
| void | inform_datasources_before_closing (void) |
| virtual void | driver_specific_tablelist (void) |
| virtual void | driver_specific_viewlist (void) |
| virtual hk_datasource * | driver_specific_new_table (hk_presentation *p) |
| virtual hk_datasource * | driver_specific_new_view (hk_presentation *p) |
| virtual hk_datasource * | driver_specific_new_resultquery (hk_presentation *p) |
| virtual hk_actionquery * | driver_specific_new_actionquery (void) |
| virtual bool | driver_specific_rename_table (const hk_string &, const hk_string &) |
| virtual bool | driver_specific_select_db (void) |
| virtual void | driver_specific_set_name (void) |
| void | ds_remove (hk_data *ds) |
| virtual void | connection_connected (void) |
| virtual void | connection_disconnected (void) |
| void | dbvisible_add (hk_dbvisible *v) |
| void | dbvisible_remove (hk_dbvisible *v) |
| void | clear_visiblelist (void) |
| virtual void | before_source_vanishes (void) |
| void | presentation_add (hk_presentation *p) |
| void | presentation_remove (hk_presentation *p) |
| void | load_configuration (void) |
| virtual void | savedata (ostream &s) |
| virtual void | loaddata (xmlNodePtr definition) |
| void | inform_datasources_filelist_changes (listtype type) |
Protected Attributes | |
| hk_connection * | p_connection |
| vector< hk_string > | p_tablelist |
| vector< hk_string > | p_viewlist |
| vector< hk_string > | p_tableviewlist |
| hk_url | p_url |
Friends | |
| class | hk_datasource |
| class | hk_actionquery |
| class | hk_connection |
| class | hk_dbvisible |
| class | hk_presentation |
| bool hk_database::set_name | ( | const hk_string & | n | ) | [virtual] |
name of the database.
References hk_class::hkdebug(), and hk_connection::server_supports().
Referenced by hk_connection::copy_database(), and hk_connection::new_database().
| vector< hk_string > * hk_database::tablelist | ( | bool | with_systemtable = false |
) |
if hk_connection is connected, the tablelist shows all existing tables in this database after you set the name of an existing database with set_name. The list will be created new every time you call this function. So be careful. Never use i.e. for_each(tablelist()->begin(),tablelist()->end(),anyfunction) Use instead: vector<hk_string>* mylist=tablelist(); for_each(mylist->begin(),mylist->end(),anyfunction)
References driver_specific_tablelist().
Referenced by hk_connection::copy_database(), and table_exists().
| vector< hk_string > * hk_database::querylist | ( | void | ) |
| vector< hk_string > * hk_database::formlist | ( | void | ) |
| vector< hk_string > * hk_database::reportlist | ( | void | ) |
| vector< hk_string > * hk_database::modulelist | ( | void | ) |
| hk_datasource * hk_database::new_table | ( | const hk_string & | name = "", |
|
| hk_presentation * | p = NULL | |||
| ) |
if you want to work with a particular table, create a hk_datasource element with this function. In a table, the data can be edited.
References hk_connection::database_exists(), hk_class::hk_translate(), hk_connection::server_needs(), hk_datasource::set_name(), hk_datasource::set_sqldelimiter(), hk_class::show_warningmessage(), and hk_connection::sqldelimiter().
Referenced by hk_connection::copy_database(), copy_table(), delete_table(), load_datasource(), and rename_file().
| hk_datasource * hk_database::new_resultquery | ( | hk_presentation * | p = NULL |
) |
if you want to work with your own dmlquery ( a SELECT ... statement), create a hk_datasource element with this function (dml= data manipulation language). All Select queries are possible (i.e. GROUP BY). The resulting data cant be edited.
References hk_connection::database_exists(), hk_class::hkdebug(), hk_connection::server_needs(), hk_datasource::set_sqldelimiter(), and hk_connection::sqldelimiter().
Referenced by load_datasource().
| hk_actionquery * hk_database::new_actionquery | ( | void | ) |
If you want to work with your own ddl queries, create a hk_action element with this function. A ddlquery (ddl= Data Definition Language) allows you to execute all non-SELECT queries (i.e. UPDATE, INSERT queries). This type of query has no result.
References hk_class::hkdebug().
Referenced by hk_connection::create_database(), hk_datasource::delete_rows(), and delete_table().
| hk_datasource * hk_database::load_datasource | ( | const hk_string & | name, | |
| datasourcetype | dt = dt_table, |
|||
| hk_presentation * | p = NULL | |||
| ) |
loads an existing table or resultquery
| name | name of the query or table | |
| query | if true this function tries to load a query with the name "name" else a table | |
| p | <internal use="" only>=""> if this datasource is part of a form or a report this is the pointer to this hk_presentation object |
References hk_class::hkdebug(), hk_datasource::loaddata(), new_resultquery(), and new_table().
| bool hk_database::delete_table | ( | const hk_string & | table, | |
| enum_interaction | x = interactive | |||
| ) | [virtual] |
removes a table from the database and deletes all data.
References hk_data::before_source_vanishes(), connection(), hk_datasource::driver_specific_before_drop_table(), hk_actionquery::execute(), hk_class::hk_translate(), hk_class::hkdebug(), hk_connection::is_connected(), hk_connection::last_servermessage(), hk_data::name(), new_actionquery(), new_table(), hk_data::p_identifierdelimiter, hk_datasource::set_name(), hk_actionquery::set_sql(), hk_class::show_warningmessage(), hk_class::show_yesnodialog(), and hk_data::type().
| bool hk_database::table_exists | ( | const hk_string & | tablename | ) |
checks whether a table exists
References hk_class::hkdebug(), and tablelist().
Referenced by hk_connection::copy_database(), copy_table(), and hk_datasource::setmode_altertable().
| hk_connection* hk_database::connection | ( | void | ) | const [inline] |
Referenced by hk_datasource::add_reference(), hk_datasource::column_by_name(), hk_datasource::columnname_occurances(), hk_connection::copy_database(), copy_table(), hk_datasource::create_table_now(), delete_table(), hk_datasource::drop_index(), hk_datasource::store_changed_data(), and hk_datasource::systemcolumnname().
| ofstream * hk_database::savestream | ( | const hk_string & | name, | |
| filetype | type, | |||
| bool | ask_before_overwrite = true | |||
| ) |
creates a stream object to store a file. Usually you don't have to use this function
| name | the name of the file | |
| type | the type of the file (i.e. query or form) | |
| ask_before_overwrite | if true and a file of this type and this name already exists you will be asked whether or not to overwrite this file |
Referenced by rename_file(), and hk_form::save_form().
| bool hk_database::delete_file | ( | const hk_string & | name, | |
| filetype | type, | |||
| enum_interaction | x = interactive | |||
| ) |
deletes a file physically. Usually you don't have to use this function
| name | name of the file | |
| type | type of the file (i.e. query or form) |
References hk_class::hk_translate(), hk_class::hkdebug(), and hk_class::show_yesnodialog().
Referenced by rename_file().
| hk_presentation * hk_database::existing_presentation | ( | const hk_string & | name, | |
| hk_presentation::enum_presentationtype | t | |||
| ) |
looks whether there is a already created hk_presentation object (form or report) usefull if you need a handle to an already opened form
| name | name of the presentation | |
| t | type of the presentation( form or report) |
References hk_class::hkdebug(), hk_presentation::is_subpresentation(), hk_presentation::name(), and hk_presentation::presentationtype().
| void hk_database::save | ( | const hk_string & | statement, | |
| const hk_string & | name, | |||
| filetype | type, | |||
| bool | ask_before_overwrite = true, |
|||
| bool | ask_for_new_name = false | |||
| ) |
save physically in a file. Usually you don't have to use this function
| statement | the content to store | |
| name | the name of the file | |
| type | the type of the file (i.e. form or query) |
Referenced by hk_form::save_form().
| hk_string hk_database::load | ( | const hk_string & | name, | |
| filetype | type | |||
| ) |
load physically from a file. Usually you don't have to use this function
| name | the name of the file | |
| type | the type of the file (i.e. form or query) |
References hk_class::hkdebug().
| hk_string hk_database::database_path | ( | void | ) |
returns the path where hk_classes stores forms, queries, and reports usually ~/.hk_classes/dbdriver/host/dbname
| bool hk_database::copy_table | ( | hk_datasource * | fromdatasource, | |
| bool | schema_and_data, | |||
| bool | replacetable, | |||
| bool | ask, | |||
| progress_dialogtype * | progressdialog = NULL | |||
| ) |
creates a new table and uses an existing datasource as a template
| fromdatasource | the datasource which is used as a template | |
| schema_and_data | if true the table will be created and the data copied, if false the data will be not copied | |
| replacetable | see parameter ask for details | |
| ask | ask=true and replacetable=true => you will be warned before overwriting an old table ask=true and replacetable=false => a new name will be asked ask=false and replacetable=true => an old table will be overwritten without warning ask=false and replacetable=false => copy_table immediately stops and returns false, if a table already exists |
References hk_datasource::accessmode(), hk_datasource::column_by_name(), hk_datasource::columnname_occurance(), hk_datasource::columnnames(), hk_datasource::columns(), hk_column::columntype(), connection(), hk_datasource::disable(), hk_datasource::driver_specific_after_copy_table(), hk_datasource::enable(), hk_datasource::goto_first(), hk_datasource::goto_next(), hk_datasource::goto_row(), hk_class::hk_translate(), hk_class::hkdebug(), hk_datasource::is_enabled(), hk_column::is_nullvalue(), hk_datasource::load_datasourcedefinition(), hk_datasource::max_rows(), hk_datasource::name(), new_table(), hk_datasource::row_position(), hk_class::runtime_only(), hk_datasource::save_datasourcedefinition(), hk_connection::server_supports(), hk_datasource::set_accessmode(), hk_column::set_asbinary(), hk_column::set_asbool(), hk_column::set_asstring(), hk_datasource::set_blockvisiblesignals(), hk_datasource::set_ignore_changed_data(), hk_datasource::setmode_insertrow(), hk_class::show_warningmessage(), hk_class::show_yesnodialog(), hk_datasource::store_changed_data(), hk_datasource::systemcolumnname(), and table_exists().
Referenced by hk_connection::copy_database().
| bool hk_database::rename_table | ( | const hk_string & | originalname, | |
| const hk_string & | newname, | |||
| enum_interaction | x = interactive | |||
| ) |
renames the table
| originaltable | old name of the table | |
| newname | new name of the tbale, | |
| x | if set to interactive warningmessages wil be displayed in case of an error |
References disable().
Referenced by rename_file().
| bool hk_database::rename_file | ( | const hk_string & | originalname, | |
| const hk_string & | newname, | |||
| filetype | type, | |||
| enum_interaction | x = interactive | |||
| ) |
renames files (queries, forms and reports) and also handles table renaming
| originaltable | old name of the table | |
| newname | new name of the tbale, | |
| filetype | the type of file, see hk_definitions::filetype for details | |
| x | if set to interactive warningmessages wil be displayed in case of an error |
References hk_datasource::column_by_name(), delete_file(), hk_datasource::enable(), hk_column::find(), hk_datasource::goto_row(), hk_class::hk_translate(), hk_datasource::max_rows(), new_table(), rename_table(), savestream(), hk_column::set_asstring(), hk_datasource::set_filter(), hk_class::show_warningmessage(), and hk_datasource::store_changed_data().
| void hk_database::disable | ( | void | ) |
informs the datasources and visible objects that the database shuts down and sets the database name to ""
Referenced by rename_table().
| virtual void hk_database::driver_specific_tablelist | ( | void | ) | [inline, protected, virtual] |
driver_specific_tablelist has to set the protected variable p_tablelist
Referenced by tablelist().
| void hk_database::savedata | ( | ostream & | s | ) | [protected, virtual] |
stores the object's values to stream s. Especially used to store queries, forms and reports
Reimplemented from hk_class.
References hk_class::end_mastertag(), hk_class::set_tagvalue(), and hk_class::start_mastertag().
| void hk_database::loaddata | ( | xmlNodePtr | definition | ) | [protected, virtual] |
loads the object's values out of the definition string. Especially used to load queries, forms and reports
Reimplemented from hk_class.
References hk_class::get_tagvalue().
1.5.6