📄 result_use.cc
字号:
#include "mysqlcppapi/query_results/Result_Use.h"#include "mysqlcppapi/Connection.h"namespace mysqlcppapi{Result_Use::Result_Use(){}Result_Use::Result_Use (MYSQL_RES* pResult, bool bFullFieldInfo /* = false */): m_Fields(pResult, bFullFieldInfo){ //This underlying result will be freed after the last unreference. m_pMySQL_Res = type_sharedptr_cresult(pResult); if(m_Fields.size()) m_table_name = m_Fields[0].get_TableName();}Result_Use::Result_Use (MYSQL_RES* pResult, const Connection& connection, bool bFullFieldInfo /* = false */) : m_Fields(pResult, bFullFieldInfo){ //It would be nice to just copy the Connection, instead of using a SharedPtr<>(new Connection), //but that would cause a circular #include. m_connection = type_sharedptr_connection(new Connection(connection)); //This underlying result will be freed after the last unreference. m_pMySQL_Res = type_sharedptr_cresult(pResult); if(m_Fields.size()) m_table_name = m_Fields[0].get_TableName();}Result_Use::Result_Use(const Result_Use& src){ m_connection = src.m_connection; m_pMySQL_Res = src.m_pMySQL_Res; m_Fields = src.m_Fields; m_table_name = src.m_table_name;}Result_Use::~Result_Use (){}Result_Use& Result_Use::operator=(const Result_Use& src){ if(this != &src) { m_connection = src.m_connection; m_pMySQL_Res = src.m_pMySQL_Res; m_Fields = src.m_Fields; m_table_name = src.m_table_name; } return *this;}bool Result_Use::operator==(const Result_Use& src) const{ return m_pMySQL_Res == src.m_pMySQL_Res;}bool Result_Use::operator!=(const Result_Use& src) const{ return !(operator==(src));}Row Result_Use::fetch_row(){ if (!m_pMySQL_Res) throw ex_BadQuery("Results not fetched"); MYSQL_ROW row = ::mysql_fetch_row(m_pMySQL_Res.obj()); Row::type_length* length = ::mysql_fetch_lengths(m_pMySQL_Res.obj()); if (!row || !length) throw ex_BadQuery("Bad row"); return Row(row, *this, length);}/*FieldInfo Result_Use::fetch_field() const{ MYSQL_FIELD* pMysqlField = ::mysql_fetch_field(m_pMySQL_Res.obj()); if(!pMysqlField) throw ex_base("mysql_fetch_field() failed."); return FieldInfo(*pMysqlField);}*/Fields Result_Use::get_fields() const{ return m_Fields;}Result_Use::size_type1 Result_Use::num_fields() const{ return m_Fields.size();}Result_Use::type_vecLengths Result_Use::get_lengths() const{ type_vecLengths vecResult; size_type1 count = num_fields(); long unsigned int* pLengths = ::mysql_fetch_lengths(m_pMySQL_Res.obj()); for(size_type1 i = 0; i < count; i++) { vecResult.push_back(pLengths[i]); } return vecResult;}bool Result_Use::eof() const{ return mysql_eof(m_pMySQL_Res.obj());} std::string Result_Use::get_table_name() const{ return m_table_name;} } //namespace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -