00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef RESOURCEPOOL_MYSQL_MYSQLEXCEPTION_HH
00026 #define RESOURCEPOOL_MYSQL_MYSQLEXCEPTION_HH
00027
00028 #ifndef RESOURCEPOOL_SQL_SQLException_HH
00029 #include "ResourcePool/SQL/SQLException.hh"
00030 #endif
00031
00032 #ifndef RESOURCEPOOL_NOFAILOVEREXCEPTION_HH
00033 #include "ResourcePool/NoFailoverException.hh"
00034 #endif
00035
00036 namespace fatalmind {
00037
00038 class MysqlException: virtual public SQL::SQLException {
00039 public:
00040 MysqlException(const std::string& message, const int errorcode, const SQL::SQLStatement& sql);
00041 int getErrorCode() const throw();
00042
00043 static void throwit(const int rv, const std::string& msg, const int errorcode, const SQL::SQLStatement& sql);
00044 protected:
00045 static const char* mapMYSQLtoXOPEN(const int errorcode);
00046 private:
00047 const int _errorcode;
00048 };
00049
00050 class NFOMysqlException: virtual public MysqlException, virtual public NoFailoverException {
00051 public:
00052 NFOMysqlException(const std::string& message, const int errorcode, const SQL::SQLStatement& sql);
00053 };
00054
00055 #define FATALMIND_MYSQL_ERRCODE_BINDOUTNOTNULL 10000
00056
00057 }
00058 #endif