pgLab/pgsql/Pgsql_PgException.cpp
eelke 62c6ad5bfb Improved support from removing rows in crud tabs.
It can handle now complex selections and reports back errors encountered
when removing the rows fails.
2018-12-15 11:24:58 +01:00

54 lines
986 B
C++

#include "Pgsql_PgException.h"
namespace Pgsql {
ResultCode::ResultCode(std::string result_code)
: m_resultCode(std::move(result_code))
{
assert(m_resultCode.length() == 5);
}
std::string ResultCode::getClass() const
{
return m_resultCode.substr(1,2);
}
/** Helper to easily check the class of the error
*
*/
bool ResultCode::isClass(const std::string_view cls)
{
return m_resultCode.compare(1, 2, cls);
}
const std::string& ResultCode::getSpecific() const
{
return m_resultCode;
}
PgException::PgException(const char *msg)
: std::runtime_error(msg)
{}
PgException::PgException(std::string msg)
: std::runtime_error(msg)
{}
PgResultError::PgResultError(const Pgsql::ErrorDetails &details)
: PgException(details.errorMessage)
, m_details(details)
{}
ResultCode PgResultError::getResultCode() const
{
return ResultCode(m_details.state);
}
const Pgsql::ErrorDetails& PgResultError::details() const
{
return m_details;
}
}