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