29 #if !defined(MYSQLPP_RESULT_H) 
   30 #define MYSQLPP_RESULT_H 
   68                         ulonglong rows, 
const std::string& info) :
 
   69         copacetic_(copacetic),
 
   70         insert_id_(insert_id),
 
   82         operator private_bool_type()
 const 
   84                 return copacetic_ ? &SimpleResult::copacetic_ : 0;
 
   91         ulonglong 
rows()
 const { 
return rows_; }
 
   95         const char* 
info()
 const { 
return info_.c_str(); }
 
  118                         { 
return fields_.at(current_field_++); }
 
  122                         { 
return fields_.at(i); }
 
  125         const Field& 
field(
unsigned int i)
 const { 
return fields_.at(i); }
 
  132                         { 
return names_->at(i); }
 
  141         int field_num(
const std::string&) 
const;
 
  145                         { 
return types_->at(i); }
 
  157                         { 
return fields_.empty() ? 
"" : fields_[0].table(); }
 
  211                 public std::vector<Row>
 
  247         list_type::size_type 
num_rows()
 const { 
return size(); }
 
  252                         { 
return this != &rhs ? copy(rhs) : *
this; }
 
  260         operator private_bool_type()
 const 
  262                 return copacetic_ ? &StoreQueryResult::copacetic_ : 0;
 
  287                         mysql_free_result(doomed);
 
  322                         { 
return this != &rhs ? copy(rhs) : *
this; }
 
  326                         { 
return fields_.at(current_field_++); }
 
  330                         { 
return fields_.at(i); }
 
  337         const unsigned long* fetch_lengths() 
const;
 
  346         Row fetch_row() 
const;
 
  354         MYSQL_ROW fetch_raw_row() 
const;
 
  361                         { current_field_ = field; }
 
  385         operator MYSQL_RES*() 
const { 
return result_.raw(); }
 
Provides a thin abstraction layer over the underlying database client library.
Definition: dbdriver.h:58
Class to hold information about a SQL field.
Definition: field.h:47
Interface allowing a class to have optional exceptions.
Definition: noexceptions.h:72
Creates an object that acts as a reference-counted pointer to another object.
Definition: refcounted.h:83
Base class for StoreQueryResult and UseQueryResult.
Definition: result.h:111
const std::string & field_name(int i) const
Get the name of the field at the given index.
Definition: result.h:131
ResultBase()
Create empty object.
Definition: result.h:161
const Field & field(unsigned int i) const
Get the underlying Field structure given its index.
Definition: result.h:125
const RefCountedPointer< FieldNames > & field_names() const
Get the names of the fields within this result set.
Definition: result.h:135
Fields::size_type current_field_
Default field index used by fetch_field()
Definition: result.h:196
const Fields & fields() const
Get the underlying Fields structure.
Definition: result.h:128
RefCountedPointer< FieldNames > names_
list of field names in result
Definition: result.h:184
const FieldTypes::value_type & field_type(int i) const
Get the type of a particular field within this result set.
Definition: result.h:144
RefCountedPointer< FieldTypes > types_
list of field types in result
Definition: result.h:187
Fields fields_
list of fields in result
Definition: result.h:181
virtual ~ResultBase()
Destroy object.
Definition: result.h:114
const Field & fetch_field() const
Returns the next field in this result set.
Definition: result.h:117
const Field & fetch_field(Fields::size_type i) const
Returns the given field in this result set.
Definition: result.h:121
const RefCountedPointer< FieldTypes > & field_types() const
Get a list of the types of the fields within this result set.
Definition: result.h:149
ResultBase(const ResultBase &other)
Create object as a copy of another ResultBase.
Definition: result.h:171
size_t num_fields() const
Returns the number of fields in this result set.
Definition: result.h:153
DBDriver * driver_
Access to DB driver; fully initted if nonzero.
Definition: result.h:180
const char * table() const
Return the name of the table the result set comes from.
Definition: result.h:156
Manages rows from a result set.
Definition: row.h:64
Holds information about the result of queries that don't return rows.
Definition: result.h:49
ulonglong insert_id() const
Get the last value used for an AUTO_INCREMENT field.
Definition: result.h:88
SimpleResult(bool copacetic, ulonglong insert_id, ulonglong rows, const std::string &info)
Initialize object.
Definition: result.h:67
const char * info() const
Get any additional information about the query returned by the server.
Definition: result.h:95
SimpleResult()
Default ctor.
Definition: result.h:59
ulonglong rows() const
Get the number of rows affected by the query.
Definition: result.h:91
StoreQueryResult set type for "store" queries.
Definition: result.h:212
StoreQueryResult()
Default constructor.
Definition: result.h:224
StoreQueryResult(const StoreQueryResult &other)
Initialize object as a copy of another StoreQueryResult object.
Definition: result.h:235
list_type::size_type num_rows() const
Returns the number of rows in this result set.
Definition: result.h:247
~StoreQueryResult()
Destroy result set.
Definition: result.h:244
std::vector< Row > list_type
type of vector base class
Definition: result.h:221
StoreQueryResult set type for "use" queries.
Definition: result.h:299
void field_seek(Fields::size_type field) const
Jumps to the given field within the result set.
Definition: result.h:360
~UseQueryResult()
Destroy object.
Definition: result.h:318
const Field & fetch_field(Fields::size_type i) const
Returns the given field in this result set.
Definition: result.h:329
UseQueryResult(const UseQueryResult &other)
Create a copy of another UseQueryResult object.
Definition: result.h:311
const Field & fetch_field() const
Returns the next field in this result set.
Definition: result.h:325
UseQueryResult()
Default constructor.
Definition: result.h:302
This file includes top-level definitions for use both internal to the library, and outside it....
Declares the MySQL++-specific exception classes.
Declares the Field and Fields classes.
std::vector< Field > Fields
The list-of-Fields type.
Definition: field.h:153
Declares a class to hold a list of field names.
Declares a class to hold a list of SQL field type info.
Declares interface that allows exceptions to be optional.
Declares the RefCountedPointer template.
void swap(StoreQueryResult &x, StoreQueryResult &y)
Swaps two StoreQueryResult objects.
Definition: result.h:407
Declares the classes for holding row data from a result set.
void operator()(MYSQL_RES *doomed) const
Functor implementation.
Definition: result.h:284
Functor to call delete on the pointer you pass to it.
Definition: refcounted.h:48