00001 /* This is for emacs: -*-Mode: C++;-*- */ 00002 #if !defined(__INC_STATEMENT_H) 00003 #define __INC_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 string& sql) = 0; 00020 00021 virtual ResultSet *execute_query(const string& sql) = 0; 00022 virtual int execute_update(const string& sql) = 0; 00023 00024 Connection *get_connection() { return(conn_); } 00025 const Connection *get_connection() const { return(conn_); } 00026 00027 virtual ResultSet *get_result_set() = 0; 00028 virtual bool get_more_results() = 0; 00029 00030 virtual int get_fetch_size() const = 0; 00031 virtual void set_fetch_size(int size) = 0; 00032 00033 virtual int get_max_field_size() const = 0; 00034 virtual void set_max_field_size(int size) = 0; 00035 00036 virtual int get_max_rows() const = 0; 00037 virtual void set_max_rows(int num) = 0; 00038 private: 00039 Connection *conn_; 00040 }; 00041 00042 00043 } 00044 00045 #endif