Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<typename T> T fetch_result_long_internal_(MYSQL_STMT* stmt, const std::string& sql)
- {
- T result;
- my_bool is_null;
- MYSQL_BIND result_bind[1] = { make_bind(result, &is_null) };
- if(mysql_stmt_bind_result(stmt, result_bind) != 0)
- throw sql_error(mysql_stmt_error(stmt), sql);
- BOOST_SCOPE_EXIT(&stmt) {
- mysql_stmt_free_result(stmt);
- } ;
- int res = mysql_stmt_fetch(stmt);
- if(res == MYSQL_NO_DATA)
- throw sql_error("no data returned", sql);
- if(is_null)
- throw sql_error("null value returned", sql);
- if(res != 0)
- throw sql_error(mysql_stmt_error(stmt), sql);
- return result;
- }
- template<> int fetch_result<int>(MYSQL_STMT* stmt, const std::string& sql)
- {
- return fetch_result_long_internal_<int>(stmt, sql);
- }
- template<> unsigned int fetch_result<unsigned int>(MYSQL_STMT* stmt, const std::string& sql)
- {
- return fetch_result_long_internal_<unsigned int>(stmt, sql);
- }
Advertisement
Add Comment
Please, Sign In to add comment