summaryrefslogtreecommitdiff
path: root/libodb-pgsql/odb/pgsql/error.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'libodb-pgsql/odb/pgsql/error.hxx')
-rw-r--r--libodb-pgsql/odb/pgsql/error.hxx41
1 files changed, 41 insertions, 0 deletions
diff --git a/libodb-pgsql/odb/pgsql/error.hxx b/libodb-pgsql/odb/pgsql/error.hxx
new file mode 100644
index 0000000..8d2793d
--- /dev/null
+++ b/libodb-pgsql/odb/pgsql/error.hxx
@@ -0,0 +1,41 @@
+// file : odb/pgsql/error.hxx
+// license : GNU GPL v2; see accompanying LICENSE file
+
+#ifndef ODB_PGSQL_ERROR_HXX
+#define ODB_PGSQL_ERROR_HXX
+
+#include <odb/pre.hxx>
+
+#include <libpq-fe.h>
+
+#include <odb/pgsql/version.hxx>
+#include <odb/pgsql/forward.hxx> // connection, multiple_exceptions
+#include <odb/pgsql/details/export.hxx>
+
+namespace odb
+{
+ namespace pgsql
+ {
+ // Translate an error condition involving PGresult* and throw (or return,
+ // in case multiple_exceptions is not NULL) an appropriate exception. If
+ // result is NULL, it is assumed that the error was caused due to a bad
+ // connection or a memory allocation error.
+ //
+ LIBODB_PGSQL_EXPORT void
+ translate_error (connection& c, PGresult* r,
+ std::size_t pos = 0, multiple_exceptions* = 0);
+
+ // Return true if PGresult is not NULL and is not in an error state. If
+ // both s and r are non-NULL, the pointed to value will be populated with
+ // the result status. Otherwise, s is ignored.
+ //
+ LIBODB_PGSQL_EXPORT bool
+ is_good_result (PGresult* r, ExecStatusType* s = 0);
+ }
+}
+
+#include <odb/pgsql/error.ixx>
+
+#include <odb/post.hxx>
+
+#endif // ODB_PGSQL_ERROR_HXX