Nut  0.1
Public Member Functions | List of all members
Query< T > Class Template Reference

This class hold a query. More...

Public Member Functions

 Query (Database *database, TableSetBase *tableSet)
QList< T * > toList (int count=-1)
int remove ()
T * first ()
int count ()
QVariant max (FieldPhrase &f)
QVariant min (FieldPhrase &f)
QVariant average (FieldPhrase &f)
Query< T > * join (const QString &tableName)
Query< T > * setWhere (WherePhrase where)
 Where phrase is a phrase using table's static field methods.
Query< T > * join (Table *c)
Query< T > * orderBy (QString fieldName, QString type)
Query< T > * orderBy (WherePhrase phrase)

Detailed Description

template<class T>
class Query< T >

This class hold a query.

A query can be used for getting database rows, editing or deleting without row fetching. A query can be used for getting data from database.

auto q = db.posts()->createQuery();
q->join(Post::commentsTable());
q->orderBy(!Post::saveDateField() & Post::bodyField());
q->setWhere(Post::idField() > 5);
auto posts = q->toList();

In below code posts is a QList<Post> that contain rows from database from this query:

SELECT * FROM post WHERE post.id>5 ORDER BY post.saveDate DESC, post.body

Member Function Documentation

template<class T >
Q_OUTOFLINE_TEMPLATE Query< T > * Query< T >::orderBy ( WherePhrase  phrase)
Parameters
phraseOrder phrase
Returns
This function return class itself orderBy set a new order for this query. Order can be a hrase like that:
query->orderBy(Post::idField());
If you need more than one order field seprate them by & operator, example:
query->orderBy(Post::idField() & Post::bodyField());
Order can be also DESC, for that put exclamation mark near field
query->orderBy(!Post::idField & Post::bodyField());
template<class T >
Q_OUTOFLINE_TEMPLATE Query< T > * Query< T >::setWhere ( WherePhrase  where)

Where phrase is a phrase using table's static field methods.

q->setWhere(Post::idField() == 4 || Post::titleField().isNull());

In sql this is like below code:

... WHERE post.id=4 OR post.title IS NULL
Parameters
whereWhere phrase
Returns
This function return class itself
template<class T >
Q_OUTOFLINE_TEMPLATE QList< T * > Query< T >::toList ( int  count = -1)
Parameters
countTotal rows must be returned
Returns
This function return class itself This function return rows

The documentation for this class was generated from the following files: