GnuCash c935c2f+
Loading...
Searching...
No Matches
Data Structures | Public Member Functions
GncDbiSqlResult Class Reference

An iterable wrapper for dbi_result; allows using C++11 range for. More...

#include <gnc-dbisqlresult.hpp>

Inheritance diagram for GncDbiSqlResult:
GncSqlResult

Data Structures

class  IteratorImpl
 

Public Member Functions

 GncDbiSqlResult (const GncDbiSqlConnection *conn, dbi_result result)
 
uint64_t size () const noexcept
 
int dberror () const noexcept
 
GncSqlRowbegin ()
 
GncSqlRowend ()
 

Additional Inherited Members

- Data Fields inherited from GncSqlResult
friend GncSqlRow
 

Detailed Description

An iterable wrapper for dbi_result; allows using C++11 range for.

Definition at line 39 of file gnc-dbisqlresult.hpp.

Constructor & Destructor Documentation

◆ GncDbiSqlResult()

GncDbiSqlResult::GncDbiSqlResult ( const GncDbiSqlConnection conn,
dbi_result  result 
)
inline

Definition at line 42 of file gnc-dbisqlresult.hpp.

42 :
43 m_conn{conn}, m_dbi_result{result}, m_iter{this}, m_row{&m_iter},
44 m_sentinel{nullptr} {}

◆ ~GncDbiSqlResult()

GncDbiSqlResult::~GncDbiSqlResult ( )

Definition at line 43 of file gnc-dbisqlresult.cpp.

44{
45 int status = dbi_result_free (m_dbi_result);
46
47 if (status == 0)
48 return;
49
50 PERR ("Error %d in dbi_result_free() result.", m_conn->dberror() );
52}
int dberror() const noexcept override
Get the connection error value.
void qof_backend_set_error(QofBackend *qof_be, QofBackendError err)
Set the error on the specified QofBackend.
@ ERR_BACKEND_SERVER_ERR
error in response from server
Definition qofbackend.h:71
#define PERR(format, args...)
Log a serious error.
Definition qoflog.h:244

Member Function Documentation

◆ begin()

GncSqlRow & GncDbiSqlResult::begin ( )
virtual

Implements GncSqlResult.

Definition at line 61 of file gnc-dbisqlresult.cpp.

62{
63
64 if (m_dbi_result == nullptr ||
65 dbi_result_get_numrows(m_dbi_result) == 0)
66 return m_sentinel;
67 int status = dbi_result_first_row(m_dbi_result);
68 if (status)
69 return m_row;
70 int error = dberror(); //
71
72 if (error != DBI_ERROR_BADIDX) //otherwise just an empty result set
73 {
74 PERR ("Error %d in dbi_result_first_row()", dberror());
76 }
77 return m_sentinel;
78}

◆ dberror()

int GncDbiSqlResult::dberror ( ) const
noexcept

Definition at line 55 of file gnc-dbisqlresult.cpp.

56{
57 return m_conn->dberror();
58}

◆ end()

GncSqlRow & GncDbiSqlResult::end ( )
inlinevirtual

Implements GncSqlResult.

Definition at line 49 of file gnc-dbisqlresult.hpp.

49{ return m_sentinel; }

◆ size()

uint64_t GncDbiSqlResult::size ( ) const
virtualnoexcept

Implements GncSqlResult.

Definition at line 81 of file gnc-dbisqlresult.cpp.

82{
83 return dbi_result_get_numrows(m_dbi_result);
84}

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