16 #include "pqxx/compiler-public.hxx" 17 #include "pqxx/compiler-internal-pre.hxx" 23 #include "pqxx/except.hxx" 24 #include "pqxx/types.hxx" 25 #include "pqxx/util.hxx" 27 #include "pqxx/internal/encodings.hxx" 40 class result_connection;
41 class result_creation;
43 class result_sql_cursor;
82 m_data(make_data_pointer()),
84 m_encoding(internal::encoding_group::MONOBYTE)
94 bool operator==(
const result &)
const noexcept;
96 {
return not operator==(rhs); }
112 PQXX_PURE
size_type size()
const noexcept;
113 PQXX_PURE
bool empty()
const noexcept;
116 void swap(
result &) noexcept;
121 void clear() noexcept { m_data.reset(); m_query =
nullptr; }
135 {
return column_number(Name.c_str());}
148 {
return column_type(column_number(ColName)); }
152 {
return column_type(column_number(ColName)); }
163 {
return column_table(column_number(ColName)); }
174 {
return table_column(column_number(ColName)); }
178 PQXX_PURE
const std::string &query()
const noexcept;
184 PQXX_PURE oid inserted_oid()
const;
190 PQXX_PURE
size_type affected_rows()
const;
194 using data_pointer = std::shared_ptr<const internal::pq::PGresult>;
200 static data_pointer make_data_pointer(
201 const internal::pq::PGresult *res=
nullptr)
205 std::shared_ptr<std::string> m_query;
207 internal::encoding_group m_encoding;
209 static const std::string s_empty_string;
218 friend class pqxx::internal::gate::result_creation;
220 internal::pq::PGresult *rhs,
221 const std::string &Query,
222 internal::encoding_group enc);
224 PQXX_PRIVATE
void check_status()
const;
226 friend class pqxx::internal::gate::result_connection;
227 friend class pqxx::internal::gate::result_row;
228 bool operator!() const noexcept {
return not m_data.get(); }
229 operator bool() const noexcept {
return m_data.get() !=
nullptr; }
231 [[noreturn]] PQXX_PRIVATE
void ThrowSQLError(
232 const std::string &Err,
233 const std::string &Query)
const;
234 PQXX_PRIVATE PQXX_PURE
int errorposition()
const;
235 PQXX_PRIVATE std::string StatusError()
const;
237 friend class pqxx::internal::gate::result_sql_cursor;
238 PQXX_PURE
const char *cmd_status() const noexcept;
241 #include "pqxx/compiler-internal-post.hxx" oid column_type(int ColNum) const
Type of given column.
Definition: result.hxx:143
signed long result_difference_type
Difference between result sizes.
Definition: types.hxx:21
unsigned long result_size_type
Number of rows in a result set.
Definition: types.hxx:18
unsigned int row_size_type
Number of fields in a row of database data.
Definition: types.hxx:24
Result set containing data returned by a query or command.
Definition: result.hxx:69
oid column_table(const std::string &ColName) const
What table did this column come from?
Definition: result.hxx:162
Reference to one row in a result.
Definition: row.hxx:40
void clear_result(const pq::PGresult *)
C++ wrapper for libpq's PQclear.
Definition: result.cxx:30
Reverse iterator for result. Use as result::const_reverse_iterator.
Definition: result_iterator.hxx:120
row_size_type column_number(const std::string &Name) const
Number of given column (throws exception if it doesn't exist).
Definition: result.hxx:134
row_size_type table_column(const std::string &ColName) const
What column in its table did this column come from?
Definition: result.hxx:173
size_type capacity() const noexcept
Definition: result.hxx:114
std::size_t field_size_type
Number of bytes in a field of database data.
Definition: types.hxx:30
row_size_type table_column(int ColNum) const
What column in its table did this column come from?
Definition: result.hxx:169
Reference to a field in a result set.
Definition: field.hxx:49
result_difference_type difference_type
Definition: result.hxx:73
oid column_type(const char ColName[]) const
Type of given column.
Definition: result.hxx:151
result() noexcept
Definition: result.hxx:81
bool operator!=(const result &rhs) const noexcept
Definition: result.hxx:95
result_size_type size_type
Definition: result.hxx:72
void clear() noexcept
Definition: result.hxx:121
oid column_table(int ColNum) const
What table did this column come from?
Definition: result.hxx:158
The home of all libpqxx classes, functions, templates, etc.
Definition: array.hxx:25
oid column_type(const std::string &ColName) const
Type of given column.
Definition: result.hxx:147
Iterator for rows in a result. Use as result::const_iterator.
Definition: result_iterator.hxx:35