Library: ActiveRecord
Package: ActiveRecord
Header: Poco/ActiveRecord/Query.h
Description
A Query is used to retrieve ActiveRecord objects from a table.
As the name implies, Query supports selection of database rows based on a WHERE clause (see where()).
Furthermore, results can be sorted (see orderBy()) and filtered based on a lambda expression (see filter()).
Optional result paging is controlled by offset() and limit(). The total number of results is available via totalResults().
Member Summary
Member Functions: bind, execute, filter, fixPlaceholders, limit, offset, operator =, orderBy, reset, select, totalResults, where
Constructors
Query
Query() = delete;
Query  
 
explicit Query(
    Context::Ptr pContext
);
Query
Query(
    const Query & param6
) = delete;
Destructor
~Query
~Query() = default;
Member Functions
bind  
 
template < typename T > Query & bind(
    const T & value
);
Bind a value to a placeholder in the where() clause.
For each placeholder (?) in the where() clause, a value must be bound with bind() before the query can be executed.
execute  
 
std::vector < typename ActRec::Ptr > execute();
Execute the query and return a vector with the results.
filter  
 
Query & filter(
    const std::function < bool (const ActRec &)> & fn
);
Specify a lambda expression for filtering results.
The lamda takes a const reference to the ActiveRecord (template argument) as parameter and must return a bool. If the lambda returns true, the respective ActiveRecord is included in the query result.
filter  
 
Query & filter(
    std::function < bool (const ActRec &)> && fn
);
limit  
 
Query & limit(
    std::size_t limit
);
Specify the maximum number of rows to return for paging.
offset  
 
Query & offset(
    std::size_t offset
);
Specify the index or offset of the first row to return for paging.
operator =
Query & operator = (
    const Query & param7
) = delete;
orderBy  
 
Query & orderBy(
    const std::string & order
);
Specify a column name and optional direction (ASC, DESC) to order the result by.
reset  
 
void reset();
Resets the query so that it can be executed again, with potentially different parameters.
totalResults  
 
std::size_t totalResults() const;
In case of a paged query, returns the total number of results that would be returned without paging.
where  
 
Query & where(
    const std::string & clause
);
Specify a WHERE clause (without the WHERE keyword) to select only rows matching the clause.
Placeholders (?) can be used in the clause. For each placeholder, an actual value must be bound before the query is executed (see bind()).
fixPlaceholders  
   
 
std::string fixPlaceholders(
    const std::string & clause
);
select  
   
 
void select();