diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2015-06-02 00:43:47 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2015-06-02 00:43:47 +0100 |
commit | 93da8da13f7af27d9a884bacf9e0157f31827905 (patch) | |
tree | e56427fdbe38d4cc2f035b8751068a9001c8ca34 /libmysqlpp/selectcommand.cpp | |
parent | Add support for RDBMS boolean/bit types (diff) | |
download | libdbpp-mysql-93da8da13f7af27d9a884bacf9e0157f31827905.tar.bz2 libdbpp-mysql-93da8da13f7af27d9a884bacf9e0157f31827905.tar.xz libdbpp-mysql-93da8da13f7af27d9a884bacf9e0157f31827905.zip |
Fix behaviour of multiple executions
Diffstat (limited to 'libmysqlpp/selectcommand.cpp')
-rw-r--r-- | libmysqlpp/selectcommand.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libmysqlpp/selectcommand.cpp b/libmysqlpp/selectcommand.cpp index 41b28b6..f0a5974 100644 --- a/libmysqlpp/selectcommand.cpp +++ b/libmysqlpp/selectcommand.cpp @@ -8,6 +8,7 @@ MySQL::SelectCommand::SelectCommand(const Connection * conn, const std::string & DB::Command(sql), DB::SelectCommand(sql), MySQL::Command(conn, sql), + prepared(false), executed(false) { } @@ -15,7 +16,7 @@ MySQL::SelectCommand::SelectCommand(const Connection * conn, const std::string & void MySQL::SelectCommand::execute() { - if (!executed) { + if (!prepared) { bindParams(); fields.resize(mysql_stmt_field_count(stmt)); for (Binds::iterator i = fields.begin(); i != fields.end(); ++i) { @@ -68,6 +69,9 @@ MySQL::SelectCommand::execute() if (mysql_stmt_bind_result(stmt, &fields.front())) { throw Error(mysql_stmt_error(stmt)); } + prepared = true; + } + if (!executed) { if (mysql_stmt_execute(stmt)) { throw Error(mysql_stmt_error(stmt)); } @@ -86,6 +90,7 @@ MySQL::SelectCommand::fetch() case 0: return true; case MYSQL_NO_DATA: + executed = false; return false; default: throw Error(mysql_stmt_error(stmt)); |