00001
00003
00004 #ifndef _FL_MYSQL_DATABASE_H_
00005 #define _FL_MYSQL_DATABASE_H_
00006
00007 #ifdef _WIN32
00008 #include <winsock.h>
00009 #endif
00010
00011 #include <efltk/db/Fl_Database.h>
00012 #include <mysql.h>
00013
00014 class Fl_MySQL_Database : public Fl_Database
00015 {
00016 public:
00017 Fl_MySQL_Database(const Fl_String connString,bool threadSafe=false);
00018 virtual ~Fl_MySQL_Database();
00019
00020 MYSQL *handle() const { return m_connection; }
00021
00022 protected:
00023
00024
00025 virtual void allocate_query(Fl_Query *);
00026 virtual void deallocate_query(Fl_Query *);
00027 virtual void prepare_query(Fl_Query *);
00028 virtual void open_query(Fl_Query *);
00029 virtual void fetch_query(Fl_Query *);
00030 virtual void close_query(Fl_Query *);
00031
00032 protected:
00033
00034 virtual void open_connection();
00035 virtual void close_connection();
00036
00037 private:
00038 void parse_parameters(Fl_Query *query, Fl_String &real_sql);
00039 void get_param(const Fl_Params ¶ms, unsigned param_num, Fl_String &ret);
00040
00041 MYSQL *m_connection;
00042 };
00043
00044 #endif // _FL_MYSQL_DATABASE_H_