Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

MysqlDatabaseLayer.h

Go to the documentation of this file.
00001 #ifndef __MYSQL_DATABASE_LAYER_H__
00002 #define __MYSQL_DATABASE_LAYER_H__
00003 
00004 // For compilers that support precompilation, includes "wx.h".
00005 #include "wx/wxprec.h"
00006 
00007 #ifdef __BORLANDC__
00008     #pragma hdrstop
00009 #endif
00010 
00011 #ifndef WX_PRECOMP
00012     #include "wx/wx.h"
00013 #endif
00014 
00015 #include "wx/arrstr.h"
00016 
00017 #include "DatabaseLayer.h"
00018 #include "PreparedStatement.h"
00019 
00020 #include "mysql.h"
00021 
00022 WX_DECLARE_VOIDPTR_HASH_MAP(void*, PointerLookupMap);
00023 
00024 class MysqlDatabaseLayer : public DatabaseLayer
00025 {
00026 public:
00027   // Information that can be specified for a MySQL database
00028   //  host or hostaddr
00029   //  port
00030   //  dbname
00031   //  user
00032   //  password
00033   // ctor
00034   MysqlDatabaseLayer();
00035   MysqlDatabaseLayer(const wxString& strDatabase);
00036   MysqlDatabaseLayer(const wxString& strServer, const wxString& strDatabase);
00037   MysqlDatabaseLayer(const wxString& strDatabase, const wxString& strUser, const wxString& strPassword);
00038   MysqlDatabaseLayer(const wxString& strServer, const wxString& strDatabase, const wxString& strUser, const wxString& strPassword);
00039   MysqlDatabaseLayer(MYSQL* pDatabase) { m_pDatabase = pDatabase; }
00040 
00041   // dtor
00042   virtual ~MysqlDatabaseLayer();
00043 
00044   // open database
00045   virtual bool Open(const wxString& strDatabase);
00046   virtual bool Open(const wxString& strServer, const wxString& strDatabase);
00047   virtual bool Open(const wxString& strDatabase, const wxString& strUser, const wxString& strPassword);
00048   virtual bool Open(const wxString& strServer, const wxString& strDatabase, const wxString& strUser, const wxString& strPassword);
00049 
00050   // close database
00051   virtual bool Close();
00052   
00053   // transaction support
00054   virtual void BeginTransaction();
00055   virtual void Commit();
00056   virtual void RollBack();
00057   
00058   // query database
00059   virtual bool RunQuery(const wxString& strQuery, bool bParseQuery);
00060   virtual DatabaseResultSet* RunQueryWithResults(const wxString& strQuery);
00061 
00062   // PreparedStatement support
00063   virtual PreparedStatement* PrepareStatement(const wxString& strQuery);
00064 
00065   static int TranslateErrorCode(int nCode);
00066 
00067 private:
00068   void InitDatabase();
00069   void ParseServerAndPort(const wxString& strServer);
00070 
00071   wxString m_strServer;
00072   wxString m_strDatabase;
00073   wxString m_strUser;
00074   wxString m_strPassword;
00075   int m_iPort;
00076     
00077   MYSQL* m_pDatabase;
00078 
00079 #if wxUSE_UNICODE
00080   PointerLookupMap m_ResultSets;
00081 #endif
00082 };
00083 
00084 #endif // __MYSQL_DATABASE_LAYER_H__
00085 

Generated on Sat May 13 17:31:34 2006 for databaselayer by  doxygen 1.4.1