diff options
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));  | 
