00001
00002 #if !defined(__INC_GQL_STATEMENT_H)
00003 #define __INC_GQL_STATEMENT_H
00004
00005 #include <gql++/warnable.h>
00006 #include <gql++/connection.h>
00007
00008 namespace GQL
00009 {
00010
00011 class ResultSet;
00012
00013 class Statement : public Warnable
00014 {
00015 public:
00016 Statement(Connection *conn) : conn_(conn) { }
00017 virtual ~Statement() { }
00018
00019 virtual bool execute(const std::string& sql) = 0;
00020
00021 virtual ResultSet *execute_query(const std::string& sql) = 0;
00022 virtual int execute_update(const std::string& sql) = 0;
00023
00024 virtual int get_update_count() const = 0;
00025
00026 Connection *get_connection() { return conn_; }
00027 const Connection *get_connection() const { return conn_; }
00028
00029 virtual ResultSet *get_result_set() = 0;
00030 virtual bool get_more_results() = 0;
00031
00032 virtual int get_fetch_size() const = 0;
00033 virtual void set_fetch_size(int size) = 0;
00034
00035 virtual int get_max_field_size() const = 0;
00036 virtual void set_max_field_size(int size) = 0;
00037
00038 virtual int get_max_rows() const = 0;
00039 virtual void set_max_rows(int num) = 0;
00040 private:
00041 Connection *conn_;
00042 };
00043
00044
00045 }
00046
00047 #endif