Documents > BPS V2 C++ API
BpsQuery Class Reference

BPS query class. More...

#include <bpsquery.h>

List of all members.

Public Member Functions

int at () const
void bind (const QVariant &aValue, QSql::ParamType aParamType=QSql::In)
 Bind a value to a SQL parameter.
QVariant boundValue (int aField) const
 Get an Out or InOut bound value from the last execute.
 BpsQuery (BpsDatastore *aDatastore)
 Constructor for the BpsQuery objects.
void clear ()
 Clears the result set and releases any local or database resources held by the query.
BpsDatastoredatastore () const
void execute (const QString &aSql=QString())
 Execute a query.
void execute (const QVariantList &aValues)
 Execute a query.
bool first ()
 Retrieves the first record in the result, if available, and positions the query on the retrieved record.
bool isActive () const
bool isForwardOnly () const
bool isNull (int aField) const
 Check if a value of the current cursor row is NULL.
bool isSelect () const
bool isValid () const
bool last ()
 Retrieves the last record in the result, if available, and positions the query on the retrieved record.
bool next ()
 Retrieves the next record in the result, if available, and positions the query on the retrieved record.
int numRowsAffected () const
void prepare (const QString &aSql)
 Prepare a SQL statement.
bool previous ()
 Retrieves the previous record in the result, if available, and positions the query on the retrieved record.
QSqlQuery * query () const
QSqlRecord record () const
bool seek (int aIndex, bool aRelative=false)
 Retrieves the record at position index, if available, and positions the query on the retrieved record.
void setForwardOnly (bool aForward=true)
 Enable or disable forward only mode.
int size () const
QString sql () const
QVariant value (int aField) const
 Get a field value from the current cursor row.
BpsSqlValues values () const
QVariantMap valuesAsMap () const

Detailed Description

BPS query class.

This class is used to perform queries on a datastore connection represented by class BpsDatastore.


Constructor & Destructor Documentation

BpsQuery::BpsQuery ( BpsDatastore aDatastore)

Constructor for the BpsQuery objects.

Parameters:
aDatastorePointer to the parent BpsDatastore object.

Member Function Documentation

int BpsQuery::at ( ) const
Returns:
The current internal position of the query. The first record is at position zero. If the position is invalid, the value is BeforeFirstRow or AfterLastRow, which are special negative values.
void BpsQuery::bind ( const QVariant &  aValue,
QSql::ParamType  aParamType = QSql::In 
)

Bind a value to a SQL parameter.

Parameters:
[in]aValueThe value to bind.
[in]aParamTypeOptional parameter type; default type is QSql::In.
QVariant BpsQuery::boundValue ( int  aField) const

Get an Out or InOut bound value from the last execute.

Parameters:
[in]aFieldThe index of the bound field.
Returns:
The bound value of the field.
BpsDatastore* BpsQuery::datastore ( ) const
Returns:
Pointer to the BpsDatastore object which this query belongs to.
void BpsQuery::execute ( const QString &  aSql = QString())

Execute a query.

Parameters:
[in]aSqlSupply a SQL statement here if no previous prepare/bind have been performed.
void BpsQuery::execute ( const QVariantList &  aValues)

Execute a query.

This is a convenience function where a list of values can be passed in as bind values. The bind values are of type QSql::In. It is required to do a prepare in advance.

Parameters:
[in]aValuesA list of bind values.
bool BpsQuery::first ( )

Retrieves the first record in the result, if available, and positions the query on the retrieved record.

Note:
The result must be in an active state and select must be true before calling this function or it will do nothing and return false.
Returns:
True if successful. If unsuccessful the query position is set to an invalid position and false is returned.
bool BpsQuery::isActive ( ) const
Returns:
True if query is active (has an open cursor), false if not.
bool BpsQuery::isForwardOnly ( ) const
Returns:
True if query is in forward only mode; false otherwise.
See also:
setForwardOnly(bool forward)
bool BpsQuery::isNull ( int  aField) const

Check if a value of the current cursor row is NULL.

Parameters:
[in]aFieldThe column index of the field.
Returns:
True if the value is NULL, false otherwise.
bool BpsQuery::isSelect ( ) const
Returns:
True if the executed query is a select statement, false if not.
bool BpsQuery::isValid ( ) const
Returns:
True if the query cursor of a select is currently at a valid position, else false.
bool BpsQuery::last ( )

Retrieves the last record in the result, if available, and positions the query on the retrieved record.

Note:
The result must be in an active state and select must be true before calling this function or it will do nothing and return false. If unsuccessful the query position is set to an invalid position.
Returns:
True if record successfully retrieved, false otherwise.
bool BpsQuery::next ( )

Retrieves the next record in the result, if available, and positions the query on the retrieved record.

Note:
The result must be in an active state and select must be true before calling this function or it will do nothing and return false.

The following rules apply:

  • If the result is currently located before the first record, e.g. immediately after a query is executed, an attempt is made to retrieve the first record.
  • If the result is currently located after the last record, there is no change and false is returned.
  • If the result is located somewhere in the middle, an attempt is made to retrieve the next record.
  • If the record could not be retrieved, the result is positioned after the last record and false is returned.
Returns:
True if the record is successfully retrieved, false otherwise.
int BpsQuery::numRowsAffected ( ) const
Returns:
The number of rows affected by the result's SQL statement, or -1 if it cannot be determined.
Note:
For SELECT statements, the value is undefined; use size() instead.
If the query is not active (active is false), -1 is returned.
void BpsQuery::prepare ( const QString &  aSql)

Prepare a SQL statement.

This is normally used in conjunction with binding. If no binding is used, the SQL statement can be directly supplied to execute() instead of calling prepare.

Parameters:
[in]aSqlThe SQL statement to prepare.
bool BpsQuery::previous ( )

Retrieves the previous record in the result, if available, and positions the query on the retrieved record.

Note:
The result must be in an active state and select must be true before calling this function or it will do nothing and return false.

The following rules apply:

  • If the result is currently located before the first record, there is no change and false is returned.
  • If the result is currently located after the last record, an attempt is made to retrieve the last record.
  • If the result is somewhere in the middle, an attempt is made to retrieve the previous record.
  • If the record could not be retrieved, the result is positioned before the first record and false is returned. If the record is successfully retrieved, true is returned.
Returns:
true if record successfully retrieved, false otherwise.
QSqlQuery* BpsQuery::query ( ) const
Returns:
The internal QSqlQuery
QSqlRecord BpsQuery::record ( ) const
Note:
Be aware that QSqlRecord will return field names in upper case for Oracle, and in lower case for PostgreSQL.
Returns:
The current row as QSqlRecord.
bool BpsQuery::seek ( int  aIndex,
bool  aRelative = false 
)

Retrieves the record at position index, if available, and positions the query on the retrieved record.

The first record is at position 0. Note that the query must be in an active state and select must be true before calling this function.

If aRelative is false (the default), the following rules apply:

  • If index is negative, the result is positioned before the first record and false is returned.
  • Otherwise, an attempt is made to move to the record at position index.
  • If the record at position index could not be retrieved, the result is positioned after the last record and false is returned.

If aRelative is true, the following rules apply:

  • If the result is currently positioned before the first record or on the first record, and index is negative, there is no change, and false is returned.
  • If the result is currently located after the last record, and index is positive, there is no change, and false is returned.
  • If the result is currently located somewhere in the middle, and the relative offset index moves the result below zero, the result is positioned before the first record and false is returned.
  • Otherwise, an attempt is made to move to the record index records ahead of the current record (or index records behind the current record if index is negative).
  • If the record at offset index could not be retrieved, the result is positioned after the last record if index >= 0, (or before the first record if index is negative), and false is returned.
Parameters:
[in]aIndexThe absolute or relative index.
[in]aRelativeTrue for relative mode, false for absolute mode.
Returns:
True if record successfully retrieved, false otherwise.
void BpsQuery::setForwardOnly ( bool  aForward = true)

Enable or disable forward only mode.

If forwardOnly is true, only next() and seek() with positive values are allowed for navigating the results. Forward only mode needs far less memory since results do not need to be cached. ForwardOnly is enabled by default (unlike QSqlQuery!); disable it before executing a random access query in case.

Parameters:
aForwardOmmit parameter or set true to enable forward only mode; set false to disable it.
See also:
isForwardOnly()
int BpsQuery::size ( ) const
Returns:
The size of the select result set (number of rows returned).
Note:
If active or select is false, size will be -1.

To determine the number of rows affected by a non-SELECT statement, use numRowsAffected() instead.

QString BpsQuery::sql ( ) const
Returns:
The SQL of the last query, or an empty string if there is no last query.
QVariant BpsQuery::value ( int  aField) const

Get a field value from the current cursor row.

Parameters:
[in]aFieldThe column index of the field.
Returns:
The value of the field.
BpsSqlValues BpsQuery::values ( ) const
Note:
Unlike record(), the field names are always lower case in the returned BpsSqlValues.
Returns:
The current row as BpsSqlValues.
QVariantMap BpsQuery::valuesAsMap ( ) const
Note:
Unlike record(), the field names are always lower case in the returned map.
Returns:
The current row as QVariantMap.

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