summaryrefslogtreecommitdiff
path: root/libsql/osqlerror.h
Side-by-side diff
Diffstat (limited to 'libsql/osqlerror.h') (more/less context) (ignore whitespace changes)
-rw-r--r--libsql/osqlerror.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/libsql/osqlerror.h b/libsql/osqlerror.h
new file mode 100644
index 0000000..35a4368
--- a/dev/null
+++ b/libsql/osqlerror.h
@@ -0,0 +1,59 @@
+#ifndef OSQL_ERROR_H
+#define OSQL_ERROR_H
+
+#include <qstring.h>
+#include <qvaluelist.h>
+
+/**
+ * OSQLError is the base class of all errors
+ */
+class OSQLError {
+public:
+ typedef QValueList<OSQLError> ValueList;
+ enum Type { None = 0, // NoError
+ Internal, // Internal Error in OSQL
+ Unknown, // Unknown Error
+ Transaction, // Transaction Error
+ Statement, // Wrong Statement
+ Connection, // Connection Error( lost )
+ Driver // Driver Specefic error
+ };
+ enum DriverError {
+ DriverInternal=0, // internal DriverError
+ Permission, // Permission Problem
+ Abort, // Abort of the SQL
+ Busy, // Busy Error
+ Locked, // Locked
+ NoMem, // No Memory
+ ReadOnly, // Database is read only
+ Interrupt, // Interrupt
+ IOErr, // IO Error
+ Corrupt, // Database Corruption
+ NotFound, // Table not Found
+ Full, // Full
+ CantOpen, // Can not open Table/Database
+ Protocol, // internal protocol error
+ Schema, // schema changed
+ TooBig, // Data too big
+ Mismatch, // Type mismatch
+ Misuse // misuse
+ };
+ OSQLError( const QString& driverText = QString::null,
+ const QString& driverDatabaseText = QString::null,
+ int type = None, int subNumber = -1 );
+ ~OSQLError();
+
+ QString driverText()const;
+ QString databaseText()const;
+ int type()const;
+ int subNumber()const;
+private:
+ QString m_drvText;
+ QString m_drvDBText;
+ int m_type;
+ int m_number;
+ class OSQLErrorPrivate;
+ OSQLErrorPrivate* d;
+};
+
+#endif