19 #include "pqxx/result.hxx" 20 #include "pqxx/transaction_base.hxx" 104 [[nodiscard]]
static difference_type all() noexcept;
119 [[nodiscard]]
static difference_type backward_all() noexcept;
129 [[nodiscard]]
std::
string const &name() const noexcept {
return m_name; }
139 #include <pqxx/internal/sql_cursor.hxx> 151 template<cursor_base::update_policy up, cursor_base::ownership_policy op>
181 m_cur{tx, adopted_cursor, op}
193 void close() noexcept { m_cur.close(); }
201 return internal::obtain_stateless_cursor_size(m_cur);
218 return internal::stateless_cursor_retrieve(
223 [[nodiscard]] std::string
const &
name() const noexcept
229 internal::sql_cursor m_cur;
233 class icursor_iterator;
239 class icursor_iterator_icursorstream;
240 class icursorstream_icursor_iterator;
314 operator bool() const &noexcept {
return not m_done; }
354 void set_stride(difference_type stride) &;
360 friend class internal::gate::icursorstream_icursor_iterator;
367 internal::sql_cursor m_cur;
439 return not operator==(rhs);
448 return not(*
this > rhs);
452 return not(*
this < rhs);
456 void refresh()
const;
458 friend class internal::gate::icursor_iterator_icursorstream;
460 void fill(
result const &);
464 difference_type m_pos;
465 icursor_iterator *m_prev{
nullptr}, *m_next{
nullptr};
Approximate istream_iterator for icursorstream.
Definition: cursor.hxx:405
Common definitions for cursor types.
Definition: cursor.hxx:37
Interface definition (and common code) for "transaction" classes.
Definition: transaction_base.hxx:72
bool operator!=(icursor_iterator const &rhs) const noexcept
Definition: cursor.hxx:437
std::string const m_name
Definition: cursor.hxx:134
Simple read-only cursor represented as a stream of results.
Definition: cursor.hxx:262
Reference to a field in a result set.
Definition: field.hxx:30
Cursor can move back and forth.
Definition: cursor.hxx:52
istream_type::difference_type difference_type
Definition: cursor.hxx:414
Result set containing data returned by a query or command.
Definition: result.hxx:67
result const * operator->() const
Definition: cursor.hxx:426
update_policy
Cursor update policy.
Definition: cursor.hxx:59
result_difference_type difference_type
Definition: cursor.hxx:41
int result_size_type
Number of rows in a result set.
Definition: types.hxx:24
std::string const & name() const noexcept
Return this cursor's name.
Definition: cursor.hxx:223
difference_type stride() const noexcept
Definition: cursor.hxx:355
result_size_type size_type
Definition: cursor.hxx:40
istream_type::size_type size_type
Definition: cursor.hxx:413
stateless_cursor(transaction_base &tx, std::string_view query, std::string_view cname, bool hold)
Create cursor.
Definition: cursor.hxx:167
Cursor can be used to read data but not to write.
Definition: cursor.hxx:62
Definition: connection.hxx:94
std::input_iterator_tag iterator_category
Definition: cursor.hxx:408
result retrieve(difference_type begin_pos, difference_type end_pos)
Retrieve rows from begin_pos (inclusive) to end_pos (exclusive)
Definition: cursor.hxx:216
The home of all libpqxx classes, functions, templates, etc.
Definition: array.hxx:22
Destroy SQL cursor when cursor object is closed at end of transaction.
Definition: cursor.hxx:86
result_difference_type difference_type
Definition: result.hxx:71
void close() noexcept
Close this cursor.
Definition: cursor.hxx:193
Cursor can move forward only.
Definition: cursor.hxx:50
result_size_type size_type
Definition: cursor.hxx:155
bool operator>(icursor_iterator const &rhs) const
Definition: cursor.hxx:442
bool operator>=(icursor_iterator const &rhs) const
Definition: cursor.hxx:450
size_type size()
Number of rows in cursor's result set.
Definition: cursor.hxx:199
static difference_type backward_all() noexcept
Special value: read backwards from current position back to origin.
Definition: cursor.cxx:32
result_difference_type difference_type
Definition: cursor.hxx:156
ownership_policy
Cursor destruction policy.
Definition: cursor.hxx:83
"Stateless cursor" class: easy API for retrieving parts of result sets
Definition: cursor.hxx:152
bool operator<=(icursor_iterator const &rhs) const
Definition: cursor.hxx:446
result const * pointer
Definition: cursor.hxx:410
icursorstream & operator>>(result &res)
Read new value into given result object; same as get(result&).
Definition: cursor.hxx:339
static difference_type prior() noexcept
Special value: read backwards, one row only.
Definition: cursor.hxx:114
cursor_base::size_type size_type
Definition: cursor.hxx:265
access_policy
Cursor access-pattern policy.
Definition: cursor.hxx:47
int result_difference_type
Difference between result sizes.
Definition: types.hxx:27
stateless_cursor(transaction_base &tx, std::string_view adopted_cursor)
Adopt an existing scrolling SQL cursor.
Definition: cursor.hxx:180
result const & reference
Definition: cursor.hxx:411
Connection to a database.
Definition: connection.hxx:180
cursor_base::difference_type difference_type
Definition: cursor.hxx:266