Merge pull request #104 from adrianimboden/develop

MySQL: Implemented affectedRowCount
This commit is contained in:
Aleksandar Fabijanic 2013-02-21 13:50:35 -08:00
commit 0607b0c6d2
4 changed files with 15 additions and 3 deletions

View File

@ -85,6 +85,8 @@ public:
bool fetchColumn(std::size_t n, MYSQL_BIND *bind);
/// Fetches the column.
std::size_t getAffectedRowCount() const;
operator MYSQL_STMT* ();
/// Cast operator to native handle type.
@ -95,9 +97,10 @@ private:
StatementExecutor& operator=(const StatementExecutor&);
private:
MYSQL* _pSessionHandle;
MYSQL_STMT* _pHandle;
int _state;
std::size_t _affectedRowCount;
std::string _query;
};

View File

@ -63,7 +63,7 @@ std::size_t MySQLStatementImpl::columnsReturned() const
std::size_t MySQLStatementImpl::affectedRowCount() const
{
return 0;
return _stmt.getAffectedRowCount();
}

View File

@ -45,6 +45,8 @@ namespace MySQL {
StatementExecutor::StatementExecutor(MYSQL* mysql)
: _pSessionHandle(mysql)
, _affectedRowCount(0)
{
if (!(_pHandle = mysql_stmt_init(mysql)))
throw StatementException("mysql_stmt_init error");
@ -115,6 +117,8 @@ void StatementExecutor::execute()
throw StatementException("mysql_stmt_execute error", _pHandle, _query);
_state = STMT_EXECUTED;
_affectedRowCount = mysql_affected_rows(_pSessionHandle);
}
@ -149,5 +153,10 @@ bool StatementExecutor::fetchColumn(std::size_t n, MYSQL_BIND *bind)
return (res == 0);
}
std::size_t StatementExecutor::getAffectedRowCount() const
{
return _affectedRowCount;
}
}}}

View File

@ -481,7 +481,7 @@ void SQLExecutor::insertSingleBulk()
for (x = 0; x < 100; ++x)
{
std::size_t i = stmt.execute();
assert (i == 0);
assert (i == 1);
}
int count = 0;