RDM Database Query APIs

Data Structures

class RDM::DB::QUERY::join_rows< table_id, NEXT >
Template base class for doing a join. More...
class RDM::DB::QUERY::join_rows_to_many< table_id, NEXT >
Template base class for doing a join for one to many. More...
class RDM::DB::QUERY::join_by_key< table_id, key_id, KEY_T, NEXT >
Template base class for doing a join by key. More...
class RDM::DB::QUERY::inner_join_by_key< table_id, key_id, KEY_T, NEXT >
Inner join by key. More...
class RDM::DB::QUERY::outer_join_by_key< table_id, key_id, KEY_T, NEXT >
Outer join by key. More...
class RDM::DB::QUERY::inner_join_by_referenced< table_id, ref_id, NEXT >
Inner join by referenced. More...
class RDM::DB::QUERY::outer_join_by_referenced< table_id, ref_id, NEXT >
Outer join by referenced. More...
class RDM::DB::QUERY::inner_join_by_reference< table_id, ref_id, NEXT >
Inner join by reference. More...
class RDM::DB::QUERY::outer_join_by_reference< table_id, ref_id, NEXT >
Outer join by reference. More...
class RDM::DB::QUERY::join_rows_to_one< table_id, NEXT >
class RDM::DB::QUERY::inner_join_by_referencing< table_id, ref_id, NEXT >
Inner join by referencing. More...
class RDM::DB::QUERY::outer_join_by_referencing< table_id, ref_id, NEXT >
Outer join by referencing. More...

Enumerations

enum RDM::DB::QUERY::position {
RDM::DB::QUERY::POS_NOT_SET = 0, RDM::DB::QUERY::POS_BEFORE_FIRST = 1, RDM::DB::QUERY::POS_ESTABLISHED_BEFORE_FIRST = 2, RDM::DB::QUERY::POS_SET = 3,
RDM::DB::QUERY::POS_AFTER_LAST = -1
}
The position in an ordered set of rows. More...

Detailed Description

The RDM Database Query API contains a set of template classes used for querying data from RDM by different types of join.

Use these template classes to set up a static chain of encapsulated classes. Each class in the chain has a specific processing task and will fetch rows from the next class in the chain when needed for its computation.

At the head of the class chain, there can optionally be on transaction class:

There are eight derived classes that can be used next, zero or more times in the chain:

A chain of these template classes is terminated with one instance of:

  • Doing a fetch of rows is implemented by read_row class.

Enumeration Type Documentation

position

#include <rdm_db_query.h>

The position in an ordered set of rows.

The position in an ordered set of rows. This is used for many of the classes here to determine how to fetch the next or previous combination of rows for a join.

Enumerator
POS_NOT_SET

The position is not set and fetch_first or fetch_last has to be called to establish a position

POS_BEFORE_FIRST

The position for the cursor is set before its first position

POS_ESTABLISHED_BEFORE_FIRST

The position for the cursor is set before its first position as set by the cursor association. Navigating from this position can only be done if we navigate forward.

POS_SET

The position for the cursor is set at a normal row position

POS_AFTER_LAST

The position for the cursor is set after its last position

@ POS_BEFORE_FIRST
Definition: rdm_db_query.h:88
@ POS_AFTER_LAST
Definition: rdm_db_query.h:91
@ POS_SET
Definition: rdm_db_query.h:90
@ POS_ESTABLISHED_BEFORE_FIRST
Definition: rdm_db_query.h:89
position
The position in an ordered set of rows.
Definition: rdm_db_query.h:86
@ POS_NOT_SET
Definition: rdm_db_query.h:87