Skip to content

Commit

Permalink
* BUGFIX: SQLiteStatement was return affected rows even when there we…
Browse files Browse the repository at this point in the history
…re none

* Allows binding of null Poco::Any.
  • Loading branch information
RangelReale committed Nov 11, 2012
1 parent c867a80 commit 74cb607
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
4 changes: 2 additions & 2 deletions Data/SQLite/src/SQLiteStatementImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -194,12 +194,12 @@ void SQLiteStatementImpl::bindImpl()

if (_bindBegin != bindings().end())
{
_affectedRowCount = (*_bindBegin)->numOfRowsHandled();
std::size_t boundRowCount = (*_bindBegin)->numOfRowsHandled();

Bindings::iterator oldBegin = _bindBegin;
for (std::size_t pos = 1; _bindBegin != bindEnd && (*_bindBegin)->canBind(); ++_bindBegin)
{
if (_affectedRowCount != (*_bindBegin)->numOfRowsHandled())
if (boundRowCount != (*_bindBegin)->numOfRowsHandled())
throw BindingException("Size mismatch in Bindings. All Bindings MUST have the same size");

(*_bindBegin)->bind(pos);
Expand Down
2 changes: 2 additions & 0 deletions Data/src/AbstractBinder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -458,6 +458,8 @@ void AbstractBinder::bind(std::size_t pos, const Any& val, Direction dir)
bind(pos, RefAnyCast<Time>(val), dir);
else if(type == typeid(BLOB))
bind(pos, RefAnyCast<BLOB>(val), dir);
else if(type == typeid(void))
bind(pos, Keywords::null, dir);
#ifndef POCO_LONG_IS_64_BIT
else if(type == typeid(long))
bind(pos, RefAnyCast<long>(val), dir);
Expand Down

0 comments on commit 74cb607

Please sign in to comment.