00001
00002 #if !defined(__INC_CONNECTION_H)
00003 #define __INC_CONNECTION_H
00004
00005 #include "gql++/warnable.h"
00006 #include "gql++/object.h"
00007
00011 namespace GQL {
00012
00013 class Statement;
00014 class PreparedStatement;
00015 class CallableStatement;
00016 class DatabaseMetaData;
00017
00022 class Connection : public Warnable
00023 {
00024 public:
00025 Connection() { }
00026 virtual ~Connection();
00027
00029 virtual Statement *create_statement() = 0;
00030
00032 virtual PreparedStatement *prepare_statement(const std::string& sql) = 0;
00033
00035 virtual CallableStatement *prepare_call(const std::string& sql) = 0;
00036
00038 virtual void commit() = 0;
00039
00041 virtual bool get_auto_commit() const = 0;
00042
00044 virtual void set_auto_commit(bool auto_commit = true) = 0;
00045
00047 virtual void rollback() = 0;
00048
00049 virtual std::string get_catalog() const = 0;
00050
00052 virtual std::string native_sql(const std::string& sql) const = 0;
00053
00054 virtual DatabaseMetaData *get_meta_data() = 0;
00055
00056 virtual void set_read_only(bool read_only = true) = 0;
00057 virtual bool is_read_only() const = 0;
00058
00059 virtual SQLObject *create_object();
00060
00061 virtual SQLObject *create_blob();
00062 virtual void destroy_blob(SQLObject *blob);
00063 };
00064
00065 }
00066
00067 #endif