00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef HK_DATA
00012 #define HK_DATA
00013 #include "hk_class.h"
00014 using namespace std;
00015 const hk_string defaulttextdelimiter="'";
00016 const hk_string defaultidentifierdelimiter="\"";
00026 class hk_data: public hk_class
00027 {
00028 friend class hk_database;
00029 public:
00034 virtual hk_string name(void) const;
00035 virtual void set_name(const hk_string& n);
00041 enum enum_datasourcetypes {ds_table,ds_query,ds_actionquery,ds_view,ds_unknown};
00042 virtual enum_datasourcetypes type(void) const;
00043 hk_string identifierdelimiter(void) const {return p_identifierdelimiter;}
00044 hk_string textdelimiter(void) const {return p_sqltextdelimiter;}
00045 static bool print_sqlstatements(void) {return p_print_sqlstatements;}
00046 static void set_print_sqlstatements(bool p);
00047
00048 protected:
00049 hk_data();
00050 virtual ~hk_data();
00051 virtual void before_source_vanishes(void);
00052 virtual void before_connection_disconnects(void);
00053 virtual void filelist_changes(listtype t);
00054 virtual bool driver_specific_name(const hk_string& n);
00055 hk_string p_name;
00056 hk_string p_sqltextdelimiter;
00057 hk_string p_identifierdelimiter;
00058 static bool p_print_sqlstatements;
00059
00060 private:
00061
00062 bool p_already_handled;
00063
00064 };
00065 #endif