wxSQLite3  5.0.1
Loading...
Searching...
No Matches
wxSQLite3::ResultSet Class Reference

Result set of a SQL query. More...

#include <wxsqlite3.h>

Classes

class  Iterator
 Iterator API. More...

Public Member Functions

 ResultSet ()
 Constructor.
 ResultSet (DatabaseHandlePtr db, StatementHandlePtr stmt, bool eof, bool first=true)
 Constructor for internal use.
 ResultSet (const ResultSet &)=default
ResultSetoperator= (const ResultSet &)=default
 ResultSet (ResultSet &&)=default
ResultSetoperator= (ResultSet &&)=default
virtual ~ResultSet ()
 Destructor.
int GetColumnCount () const
 Get the number of columns in the result set.
int FindColumnIndex (const wxString &columnName) const
 Find the index of a column by name.
wxString GetColumnName (int columnIndex) const
 Get the name of a column.
wxString GetDeclaredColumnType (int columnIndex) const
 Get the declared type of a column.
int GetColumnType (int columnIndex) const
 Get the actual type of a column.
wxString GetDatabaseName (int columnIndex) const
 Get the database name of a column.
wxString GetTableName (int columnIndex) const
 Get the table name of a column.
wxString GetOriginName (int columnIndex) const
 Get the origin name of a column.
wxString GetAsString (int columnIndex) const
 Get a column as a string using the column index.
wxString GetAsString (const wxString &columnName) const
 Get a column as a string using the column name.
int GetInt (int columnIndex, int nullValue=0) const
 Get a column as an integer using the column index.
int GetInt (const wxString &columnName, int nullValue=0) const
 Get a column as an integer using the column name.
wxLongLong GetInt64 (int columnIndex, wxLongLong nullValue=0) const
 Get a column as a 64-bit integer using the column index.
wxLongLong GetInt64 (const wxString &columnName, wxLongLong nullValue=0) const
 Get a column as a 64-bit integer using the column name.
double GetDouble (int columnIndex, double nullValue=0.0) const
 Get a column as a double using the column index.
double GetDouble (const wxString &columnName, double nullValue=0.0) const
 Get a column as a double using the column name.
wxString GetString (int columnIndex, const wxString &nullValue=wxEmptyString) const
 Get a column as a string using the column index.
wxString GetString (const wxString &columnName, const wxString &nullValue=wxEmptyString) const
 Get a column as a string using the column name.
const unsigned char * GetBlob (int columnIndex, int &len) const
 Get a column as a BLOB using the column index.
const unsigned char * GetBlob (const wxString &columnName, int &len) const
 Get a column as a BLOB using the column name.
wxMemoryBuffer & GetBlob (int columnIndex, wxMemoryBuffer &buffer) const
 Get a column as a BLOB using the column index and append to memory buffer.
wxMemoryBuffer & GetBlob (const wxString &columnName, wxMemoryBuffer &buffer) const
 Get a column as a BLOB using the column index and append to memory buffer.
wxDateTime GetDate (int columnIndex) const
 Get a column as a date value using the column index.
wxDateTime GetDate (const wxString &columnName) const
 Get a column as a date value using the column name.
wxDateTime GetTime (int columnIndex) const
 Get a column as a time value using the column index.
wxDateTime GetTime (const wxString &columnName) const
 Get a column as a time value using the column name.
wxDateTime GetDateTime (int columnIndex) const
 Get a column as a date and time value using the column index.
wxDateTime GetDateTime (const wxString &columnName) const
 Get a column as a date and time value using the column name.
wxDateTime GetTimestamp (int columnIndex) const
 Get a column as a timestamp value using the column index.
wxDateTime GetTimestamp (const wxString &columnName) const
 Get a column as a timestamp value using the column name.
wxDateTime GetNumericDateTime (int columnIndex) const
 Get a column as a date and time value using the column index.
wxDateTime GetNumericDateTime (const wxString &columnName) const
 Get a column as a date and time value using the column name.
wxDateTime GetUnixDateTime (int columnIndex) const
 Get a column as a date and time value using the column index.
wxDateTime GetUnixDateTime (const wxString &columnName) const
 Get a column as a date and time value using the column name.
wxDateTime GetJulianDayNumber (int columnIndex) const
 Get a column as a date and time value using the column index.
wxDateTime GetJulianDayNumber (const wxString &columnName) const
 Get a column as a date and time value using the column name.
wxDateTime GetAutomaticDateTime (int columnIndex, bool milliSeconds=false) const
 Get a column as a date and time value using the column index.
wxDateTime GetAutomaticDateTime (const wxString &columnName, bool milliSeconds=false) const
 Get a column as a date and time value using the column name.
bool GetBool (int columnIndex) const
 Get a column as a boolean value using the column index.
bool GetBool (const wxString &columnName) const
 Get a column as a boolean value using the column name.
bool IsNull (int columnIndex) const
 Check whether a column has a NULL value using the column index.
bool IsNull (const wxString &columnName) const
 Check whether a column has a NULL value using the column name.
bool Eof () const
 Check whether all rows of the result set have been processed.
bool CursorMoved () const
 Check whether the cursor has been moved.
bool NextRow ()
 Retrieve next row of the result set.
void Finalize ()
 Finalize the result set.
wxString GetSQL () const
 Get the original SQL string for preparing the query statement.
wxString GetExpandedSQL () const
 Get the original SQL string for preparing the query statement with expanded bound parameters.
bool IsOk () const
 Validate associated SQLite database and statement.
Iterator begin ()
 Retrieve a result set iterator pointing to the first row.
Iterator end ()
 Retrieve a result set iterator pointing to the last row.
template<typename T>
std::optional< T > Get (int columnIndex) const
 Get a column as a std::optional value using the column index.
template<typename... T>
std::tuple< std::optional< T >... > GetTuple () const
 Get values from a row of a result set as a tuple of values.
template<typename... T>
std::tuple< std::optional< T >... > GetTuple (const std::array< int, sizeof...(T)> &columns) const
 Get values from selected columns of the current row of a result set as a tuple of values.

Detailed Description

Result set of a SQL query.

Constructor & Destructor Documentation

◆ ResultSet() [1/4]

wxSQLite3::ResultSet::ResultSet ( )

Constructor.

◆ ResultSet() [2/4]

wxSQLite3::ResultSet::ResultSet ( DatabaseHandlePtr db,
StatementHandlePtr stmt,
bool eof,
bool first = true )

Constructor for internal use.

◆ ResultSet() [3/4]

wxSQLite3::ResultSet::ResultSet ( const ResultSet & )
default

◆ ResultSet() [4/4]

wxSQLite3::ResultSet::ResultSet ( ResultSet && )
default

◆ ~ResultSet()

virtual wxSQLite3::ResultSet::~ResultSet ( )
virtual

Destructor.

Member Function Documentation

◆ begin()

Iterator wxSQLite3::ResultSet::begin ( )
inline

Retrieve a result set iterator pointing to the first row.

Returns
Pointer to the first row of a result set

◆ CursorMoved()

bool wxSQLite3::ResultSet::CursorMoved ( ) const

Check whether the cursor has been moved.

Returns
TRUE if the cursor has been moved using method NextRow, FALSE otherwise

◆ end()

Iterator wxSQLite3::ResultSet::end ( )
inline

Retrieve a result set iterator pointing to the last row.

Returns
Pointer to the end of a result set

◆ Eof()

bool wxSQLite3::ResultSet::Eof ( ) const

Check whether all rows of the result set have been processed.

Returns
TRUE if all rows of the result have been processed, FALSE otherwise

◆ Finalize()

void wxSQLite3::ResultSet::Finalize ( )

Finalize the result set.

◆ FindColumnIndex()

int wxSQLite3::ResultSet::FindColumnIndex ( const wxString & columnName) const

Find the index of a column by name.

Parameters
columnNamename of the column
Returns
index of the column. Indices start with 0.

◆ Get()

template<typename T>
std::optional< T > wxSQLite3::ResultSet::Get ( int columnIndex) const
inline

Get a column as a std::optional value using the column index.

The column value is retrieved using the type template parameter. Supported types: int, wxLongLong, double, wxString, wxDateTime, and bool.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
value of the column or NULL

◆ GetAsString() [1/2]

wxString wxSQLite3::ResultSet::GetAsString ( const wxString & columnName) const

Get a column as a string using the column name.

Parameters
columnNamename of the column
Returns
value of the column

◆ GetAsString() [2/2]

wxString wxSQLite3::ResultSet::GetAsString ( int columnIndex) const

Get a column as a string using the column index.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
value of the column as string

◆ GetAutomaticDateTime() [1/2]

wxDateTime wxSQLite3::ResultSet::GetAutomaticDateTime ( const wxString & columnName,
bool milliSeconds = false ) const

Get a column as a date and time value using the column name.

The date/time value is interpreted based on the type of column value.

Parameters
columnNamename of the column
milliSecondsinterpret integer value as milliseconds since 1970-01-01, default: false
Returns
value of the column

◆ GetAutomaticDateTime() [2/2]

wxDateTime wxSQLite3::ResultSet::GetAutomaticDateTime ( int columnIndex,
bool milliSeconds = false ) const

Get a column as a date and time value using the column index.

The date/time value is interpreted based on the type of column value.

Parameters
columnIndexindex of the column. Indices start with 0.
milliSecondsinterpret integer value as milliseconds since 1970-01-01, default: false
Returns
value of the column

◆ GetBlob() [1/4]

const unsigned char * wxSQLite3::ResultSet::GetBlob ( const wxString & columnName,
int & len ) const

Get a column as a BLOB using the column name.

Parameters
columnNamename of the column
[out]lenlength of the blob in bytes
Returns
value of the column

◆ GetBlob() [2/4]

wxMemoryBuffer & wxSQLite3::ResultSet::GetBlob ( const wxString & columnName,
wxMemoryBuffer & buffer ) const

Get a column as a BLOB using the column index and append to memory buffer.

Parameters
columnNamename of the column
[out]bufferthe memory buffer to which the BLOB value is appended
Returns
reference to the memory buffer

◆ GetBlob() [3/4]

const unsigned char * wxSQLite3::ResultSet::GetBlob ( int columnIndex,
int & len ) const

Get a column as a BLOB using the column index.

Parameters
columnIndexindex of the column. Indices start with 0.
[out]lenlength of the blob in bytes
Returns
value of the column

◆ GetBlob() [4/4]

wxMemoryBuffer & wxSQLite3::ResultSet::GetBlob ( int columnIndex,
wxMemoryBuffer & buffer ) const

Get a column as a BLOB using the column index and append to memory buffer.

Parameters
columnIndexindex of the column. Indices start with 0.
[out]bufferthe memory buffer to which the BLOB value is appended
Returns
reference to the memory buffer

◆ GetBool() [1/2]

bool wxSQLite3::ResultSet::GetBool ( const wxString & columnName) const

Get a column as a boolean value using the column name.

Parameters
columnNamename of the column
Returns
value of the column

◆ GetBool() [2/2]

bool wxSQLite3::ResultSet::GetBool ( int columnIndex) const

Get a column as a boolean value using the column index.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
value of the column

◆ GetColumnCount()

int wxSQLite3::ResultSet::GetColumnCount ( ) const

Get the number of columns in the result set.

Returns
number of columns in result set

◆ GetColumnName()

wxString wxSQLite3::ResultSet::GetColumnName ( int columnIndex) const

Get the name of a column.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
column name as string

◆ GetColumnType()

int wxSQLite3::ResultSet::GetColumnType ( int columnIndex) const

Get the actual type of a column.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
column type as one of the values WXSQLITE_INTEGER, WXSQLITE_FLOAT, WXSQLITE_TEXT, WXSQLITE_BLOB, or WXSQLITE_NULL

◆ GetDatabaseName()

wxString wxSQLite3::ResultSet::GetDatabaseName ( int columnIndex) const

Get the database name of a column.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
database name the column belongs to or empty string

This method is only available if SQLite has been compiled with SQLITE_ENABLE_COLUMN_METADATA defined.

◆ GetDate() [1/2]

wxDateTime wxSQLite3::ResultSet::GetDate ( const wxString & columnName) const

Get a column as a date value using the column name.

Date value is expected to be in format 'YYYY-MM-DD'.

Parameters
columnNamename of the column
Returns
value of the column

◆ GetDate() [2/2]

wxDateTime wxSQLite3::ResultSet::GetDate ( int columnIndex) const

Get a column as a date value using the column index.

Date value is expected to be in format 'YYYY-MM-DD'.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
value of the column

◆ GetDateTime() [1/2]

wxDateTime wxSQLite3::ResultSet::GetDateTime ( const wxString & columnName) const

Get a column as a date and time value using the column name.

Date value is expected to be in format 'YYYY-MM-DD HH:MM:SS'.

Parameters
columnNamename of the column
Returns
value of the column

◆ GetDateTime() [2/2]

wxDateTime wxSQLite3::ResultSet::GetDateTime ( int columnIndex) const

Get a column as a date and time value using the column index.

Date value is expected to be in format 'YYYY-MM-DD HH:MM:SS'.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
value of the column

◆ GetDeclaredColumnType()

wxString wxSQLite3::ResultSet::GetDeclaredColumnType ( int columnIndex) const

Get the declared type of a column.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
type string as specified in the table definition

◆ GetDouble() [1/2]

double wxSQLite3::ResultSet::GetDouble ( const wxString & columnName,
double nullValue = 0.0 ) const

Get a column as a double using the column name.

Parameters
columnNamename of the column
nullValuevalue to be returned in case the column is NULL
Returns
value of the column

◆ GetDouble() [2/2]

double wxSQLite3::ResultSet::GetDouble ( int columnIndex,
double nullValue = 0.0 ) const

Get a column as a double using the column index.

Parameters
columnIndexindex of the column. Indices start with 0.
nullValuevalue to be returned in case the column is NULL
Returns
value of the column

◆ GetExpandedSQL()

wxString wxSQLite3::ResultSet::GetExpandedSQL ( ) const

Get the original SQL string for preparing the query statement with expanded bound parameters.

Returns
the original SQL string used to prepare the statement with expanded bound parameters

◆ GetInt() [1/2]

int wxSQLite3::ResultSet::GetInt ( const wxString & columnName,
int nullValue = 0 ) const

Get a column as an integer using the column name.

Parameters
columnNamename of the column
nullValuevalue to be returned in case the column is NULL
Returns
value of the column

◆ GetInt() [2/2]

int wxSQLite3::ResultSet::GetInt ( int columnIndex,
int nullValue = 0 ) const

Get a column as an integer using the column index.

Parameters
columnIndexindex of the column. Indices start with 0.
nullValuevalue to be returned in case the column is NULL
Returns
value of the column

◆ GetInt64() [1/2]

wxLongLong wxSQLite3::ResultSet::GetInt64 ( const wxString & columnName,
wxLongLong nullValue = 0 ) const

Get a column as a 64-bit integer using the column name.

Parameters
columnNamename of the column
nullValuevalue to be returned in case the column is NULL
Returns
value of the column

◆ GetInt64() [2/2]

wxLongLong wxSQLite3::ResultSet::GetInt64 ( int columnIndex,
wxLongLong nullValue = 0 ) const

Get a column as a 64-bit integer using the column index.

Parameters
columnIndexindex of the column. Indices start with 0.
nullValuevalue to be returned in case the column is NULL
Returns
value of the column

◆ GetJulianDayNumber() [1/2]

wxDateTime wxSQLite3::ResultSet::GetJulianDayNumber ( const wxString & columnName) const

Get a column as a date and time value using the column name.

The date/time value is expected to be stored in the database as a Julian Day Number (i.e. double).

Parameters
columnNamename of the column
Returns
value of the column

◆ GetJulianDayNumber() [2/2]

wxDateTime wxSQLite3::ResultSet::GetJulianDayNumber ( int columnIndex) const

Get a column as a date and time value using the column index.

The date/time value is expected to be stored in the database as a Julian Day Number (i.e. double).

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
value of the column

◆ GetNumericDateTime() [1/2]

wxDateTime wxSQLite3::ResultSet::GetNumericDateTime ( const wxString & columnName) const

Get a column as a date and time value using the column name.

The date/time value is expected to be stored in the database as a numeric value (i.e. int64), measured in milliseconds since 1970-01-01.

Parameters
columnNamename of the column
Returns
value of the column

◆ GetNumericDateTime() [2/2]

wxDateTime wxSQLite3::ResultSet::GetNumericDateTime ( int columnIndex) const

Get a column as a date and time value using the column index.

The date/time value is expected to be stored in the database as a numeric value (i.e. int64), measured in milliseconds since 1970-01-01.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
value of the column

◆ GetOriginName()

wxString wxSQLite3::ResultSet::GetOriginName ( int columnIndex) const

Get the origin name of a column.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
origin name the column belongs to or empty string

This method is only available if SQLite has been compiled with SQLITE_ENABLE_COLUMN_METADATA defined.

◆ GetSQL()

wxString wxSQLite3::ResultSet::GetSQL ( ) const

Get the original SQL string for preparing the query statement.

Returns
the original SQL string used to prepare the query statement

◆ GetString() [1/2]

wxString wxSQLite3::ResultSet::GetString ( const wxString & columnName,
const wxString & nullValue = wxEmptyString ) const

Get a column as a string using the column name.

Parameters
columnNamename of the column
nullValuevalue to be returned in case the column is NULL
Returns
value of the column

◆ GetString() [2/2]

wxString wxSQLite3::ResultSet::GetString ( int columnIndex,
const wxString & nullValue = wxEmptyString ) const

Get a column as a string using the column index.

Parameters
columnIndexindex of the column. Indices start with 0.
nullValuevalue to be returned in case the column is NULL
Returns
value of the column

◆ GetTableName()

wxString wxSQLite3::ResultSet::GetTableName ( int columnIndex) const

Get the table name of a column.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
table name the column belongs to or empty string

This method is only available if SQLite has been compiled with SQLITE_ENABLE_COLUMN_METADATA defined.

◆ GetTime() [1/2]

wxDateTime wxSQLite3::ResultSet::GetTime ( const wxString & columnName) const

Get a column as a time value using the column name.

Date value is expected to be in format 'HH:MM:SS'.

Parameters
columnNamename of the column
Returns
value of the column

◆ GetTime() [2/2]

wxDateTime wxSQLite3::ResultSet::GetTime ( int columnIndex) const

Get a column as a time value using the column index.

Date value is expected to be in format 'HH:MM:SS'.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
value of the column

◆ GetTimestamp() [1/2]

wxDateTime wxSQLite3::ResultSet::GetTimestamp ( const wxString & columnName) const

Get a column as a timestamp value using the column name.

Date value is expected to be in format 'YYYY-MM-DD HH:MM:SS.mmm'.

Parameters
columnNamename of the column
Returns
value of the column

◆ GetTimestamp() [2/2]

wxDateTime wxSQLite3::ResultSet::GetTimestamp ( int columnIndex) const

Get a column as a timestamp value using the column index.

Date value is expected to be in format 'YYYY-MM-DD HH:MM:SS.mmm'.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
value of the column

◆ GetTuple() [1/2]

template<typename... T>
std::tuple< std::optional< T >... > wxSQLite3::ResultSet::GetTuple ( ) const
inline

Get values from a row of a result set as a tuple of values.

The specified type template parameters determine the number and types of the columns to retrieve from the current row of a result set. Supported types: int, wxLongLong, double, wxString, wxDateTime, and bool.

Returns
tuple of values from the first result columns as std::optional

◆ GetTuple() [2/2]

template<typename... T>
std::tuple< std::optional< T >... > wxSQLite3::ResultSet::GetTuple ( const std::array< int, sizeof...(T)> & columns) const
inline

Get values from selected columns of the current row of a result set as a tuple of values.

The specified type template parameters determine the number and types of the columns to retrieve from the current row of a result set. Supported types: int, wxLongLong, double, wxString, wxDateTime, and bool.

Parameters
columnsan array of 0-based column indices
Returns
tuple of values from the first result columns as std::optional

◆ GetUnixDateTime() [1/2]

wxDateTime wxSQLite3::ResultSet::GetUnixDateTime ( const wxString & columnName) const

Get a column as a date and time value using the column name.

The date/time value is expected to be stored in the database as an integer value (i.e. int64), measured in seconds since 1970-01-01.

Parameters
columnNamename of the column
Returns
value of the column

◆ GetUnixDateTime() [2/2]

wxDateTime wxSQLite3::ResultSet::GetUnixDateTime ( int columnIndex) const

Get a column as a date and time value using the column index.

The date/time value is expected to be stored in the database as an integer value (i.e. int64), measured in seconds since 1970-01-01.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
value of the column

◆ IsNull() [1/2]

bool wxSQLite3::ResultSet::IsNull ( const wxString & columnName) const

Check whether a column has a NULL value using the column name.

Parameters
columnNamename of the column
Returns
TRUE if the value is NULL, FALSE otherwise

◆ IsNull() [2/2]

bool wxSQLite3::ResultSet::IsNull ( int columnIndex) const

Check whether a column has a NULL value using the column index.

Parameters
columnIndexindex of the column. Indices start with 0.
Returns
TRUE if the value is NULL, FALSE otherwise

◆ IsOk()

bool wxSQLite3::ResultSet::IsOk ( ) const

Validate associated SQLite database and statement.

Returns
TRUE if both, a SQLite database and a SQLite statement, are associated, FALSE otherwise

◆ NextRow()

bool wxSQLite3::ResultSet::NextRow ( )

Retrieve next row of the result set.

Advances the cursor to the next row. On creation of the result set the cursor is positioned BEFORE the first row, i.e. the first call to this method makes the first row available for processing.

Returns
TRUE while there are still rows to process, FALSE otherwise

◆ operator=() [1/2]

ResultSet & wxSQLite3::ResultSet::operator= ( const ResultSet & )
default

◆ operator=() [2/2]

ResultSet & wxSQLite3::ResultSet::operator= ( ResultSet && )
default

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