00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "pqxx/compiler-public.hxx"
00020 #include "pqxx/compiler-internal-pre.hxx"
00021
00022 #include <stdexcept>
00023
00024 #include "pqxx/util"
00025
00026
00027 namespace pqxx
00028 {
00029
00046
00047
00065 class PQXX_LIBEXPORT broken_connection : public PGSTD::runtime_error
00066 {
00067 public:
00068 broken_connection();
00069 explicit broken_connection(const PGSTD::string &);
00070 };
00071
00072
00074
00075 class PQXX_LIBEXPORT sql_error : public PGSTD::runtime_error
00076 {
00077 PGSTD::string m_Q;
00078
00079 public:
00080 sql_error();
00081 explicit sql_error(const PGSTD::string &);
00082 sql_error(const PGSTD::string &, const PGSTD::string &Q);
00083 virtual ~sql_error() throw ();
00084
00086 const PGSTD::string &query() const throw ();
00087 };
00088
00089
00090
00092
00098 class PQXX_LIBEXPORT in_doubt_error : public PGSTD::runtime_error
00099 {
00100 public:
00101 explicit in_doubt_error(const PGSTD::string &);
00102 };
00103
00104
00106 class PQXX_LIBEXPORT internal_error : public PGSTD::logic_error
00107 {
00108 public:
00109 explicit internal_error(const PGSTD::string &);
00110 };
00111
00112
00114 class PQXX_LIBEXPORT feature_not_supported : public sql_error
00115 {
00116 public:
00117 explicit feature_not_supported(const PGSTD::string &err) : sql_error(err) {}
00118 feature_not_supported(const PGSTD::string &err, const PGSTD::string &Q) :
00119 sql_error(err,Q) {}
00120 };
00121
00123 class PQXX_LIBEXPORT data_exception : public sql_error
00124 {
00125 public:
00126 explicit data_exception(const PGSTD::string &err) : sql_error(err) {}
00127 data_exception(const PGSTD::string &err, const PGSTD::string &Q) :
00128 sql_error(err,Q) {}
00129 };
00130
00131 class PQXX_LIBEXPORT integrity_constraint_violation : public sql_error
00132 {
00133 public:
00134 explicit integrity_constraint_violation(const PGSTD::string &err) :
00135 sql_error(err) {}
00136 integrity_constraint_violation(const PGSTD::string &err,
00137 const PGSTD::string &Q) :
00138 sql_error(err, Q) {}
00139 };
00140
00141
00142 class PQXX_LIBEXPORT invalid_cursor_state : public sql_error
00143 {
00144 public:
00145 explicit invalid_cursor_state(const PGSTD::string &err) : sql_error(err) {}
00146 invalid_cursor_state(const PGSTD::string &err, const PGSTD::string &Q) :
00147 sql_error(err,Q) {}
00148 };
00149
00150 class PQXX_LIBEXPORT invalid_sql_statement_name : public sql_error
00151 {
00152 public:
00153 explicit invalid_sql_statement_name(const PGSTD::string &err) :
00154 sql_error(err) {}
00155 invalid_sql_statement_name(const PGSTD::string &err, const PGSTD::string &Q) :
00156 sql_error(err,Q) {}
00157 };
00158
00159 class PQXX_LIBEXPORT invalid_cursor_name : public sql_error
00160 {
00161 public:
00162 explicit invalid_cursor_name(const PGSTD::string &err) : sql_error(err) {}
00163 invalid_cursor_name(const PGSTD::string &err, const PGSTD::string &Q) :
00164 sql_error(err,Q) {}
00165 };
00166
00167 class PQXX_LIBEXPORT syntax_error : public sql_error
00168 {
00169 public:
00170 explicit syntax_error(const PGSTD::string &err) : sql_error(err) {}
00171 syntax_error(const PGSTD::string &err, const PGSTD::string &Q) :
00172 sql_error(err,Q) {}
00173 };
00174
00175 class PQXX_LIBEXPORT undefined_column : public syntax_error
00176 {
00177 public:
00178 explicit undefined_column(const PGSTD::string &err) : syntax_error(err) {}
00179 undefined_column(const PGSTD::string &err, const PGSTD::string &Q) :
00180 syntax_error(err, Q) {}
00181 };
00182
00183 class PQXX_LIBEXPORT undefined_function : public syntax_error
00184 {
00185 public:
00186 explicit undefined_function(const PGSTD::string &err) : syntax_error(err) {}
00187 undefined_function(const PGSTD::string &err, const PGSTD::string &Q) :
00188 syntax_error(err, Q) {}
00189 };
00190
00191 class PQXX_LIBEXPORT undefined_table : public syntax_error
00192 {
00193 public:
00194 explicit undefined_table(const PGSTD::string &err) : syntax_error(err) {}
00195 undefined_table(const PGSTD::string &err, const PGSTD::string &Q) :
00196 syntax_error(err, Q) {}
00197 };
00198
00199 class PQXX_LIBEXPORT insufficient_privilege : public sql_error
00200 {
00201 public:
00202 explicit insufficient_privilege(const PGSTD::string &err) : sql_error(err) {}
00203 insufficient_privilege(const PGSTD::string &err, const PGSTD::string &Q) :
00204 sql_error(err,Q) {}
00205 };
00206
00208 class PQXX_LIBEXPORT insufficient_resources : public sql_error
00209 {
00210 public:
00211 explicit insufficient_resources(const PGSTD::string &err) : sql_error(err) {}
00212 insufficient_resources(const PGSTD::string &err, const PGSTD::string &Q) :
00213 sql_error(err,Q) {}
00214 };
00215
00216 class PQXX_LIBEXPORT disk_full : public insufficient_resources
00217 {
00218 public:
00219 explicit disk_full(const PGSTD::string &err) : insufficient_resources(err) {}
00220 disk_full(const PGSTD::string &err, const PGSTD::string &Q) :
00221 insufficient_resources(err,Q) {}
00222 };
00223
00224 class PQXX_LIBEXPORT out_of_memory : public insufficient_resources
00225 {
00226 public:
00227 explicit out_of_memory(const PGSTD::string &err) :
00228 insufficient_resources(err) {}
00229 out_of_memory(const PGSTD::string &err, const PGSTD::string &Q) :
00230 insufficient_resources(err,Q) {}
00231 };
00232
00233 class PQXX_LIBEXPORT too_many_connections : public broken_connection
00234 {
00235 public:
00236 explicit too_many_connections(const PGSTD::string &err) :
00237 broken_connection(err) {}
00238 };
00239
00244 }
00245
00246 #include "pqxx/compiler-internal-post.hxx"