本文整理汇总了C++中SetErrorCode函数的典型用法代码示例。如果您正苦于以下问题:C++ SetErrorCode函数的具体用法?C++ SetErrorCode怎么用?C++ SetErrorCode使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了SetErrorCode函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Initialise
void LuaUtils::CallMethod(std::string name, int numArgs, int numRets)
{
if(!lua_state)
{
Initialise();
}
lua_getglobal(lua_state, name.c_str());
if(!lua_isfunction(lua_state, stackTop))
{
//Error
SetErrorCode(Lua_Error::Method_Not_Registered);
return;
}
else
{
int err = lua_pcall(lua_state, numArgs, numRets, 0);
if(err)
{
if(err = LUA_ERRRUN)
{
SetErrorCode(Lua_Error::Run_Time_Error);
}
if(err == LUA_ERRERR)
{
SetErrorCode(Lua_Error::Error_Handle_Error);
}
}
}
}
示例2: SetErrorCode
int wxMysqlPreparedStatementWrapper::RunQuery()
{
MYSQL_BIND* pBoundParameters = m_Parameters.GetMysqlParameterBindings();
int nBindReturn = m_pInterface->GetMysqlStmtBindParam()(m_pStatement, pBoundParameters);
if (nBindReturn != 0)
{
SetErrorCode(wxMysqlDatabase::TranslateErrorCode(m_pInterface->GetMysqlStmtErrno()(m_pStatement)));
SetErrorMessage(ConvertFromUnicodeStream(m_pInterface->GetMysqlStmtError()(m_pStatement)));
wxDELETEA(pBoundParameters);
ThrowDatabaseException();
return wxDATABASE_QUERY_RESULT_ERROR;
}
else
{
int nReturn = m_pInterface->GetMysqlStmtExecute()(m_pStatement);
if (nReturn != 0)
{
SetErrorCode(wxMysqlDatabase::TranslateErrorCode(m_pInterface->GetMysqlStmtErrno()(m_pStatement)));
SetErrorMessage(ConvertFromUnicodeStream(m_pInterface->GetMysqlStmtError()(m_pStatement)));
wxDELETEA(pBoundParameters);
ThrowDatabaseException();
return wxDATABASE_QUERY_RESULT_ERROR;
}
}
wxDELETEA(pBoundParameters);
return m_pInterface->GetMysqlStmtAffectedRows()(m_pStatement);
}
示例3: SetErrorCode
LWorkItem& LWorkItem::GetData(void* pData, size_t sDataLen)
{
if (m_pWorkContentBuf == NULL)
{
SetErrorCode(PACKET_BASE_ERROR_CODE_BUF_NOT_INIT);
return *this;
}
if (pData == NULL)
{
SetErrorCode(PACKET_BASE_ERROR_CODE_OUTPUT_PARAM_WRONG);
return *this;
}
if (sDataLen > m_usWorkContentBufLen)
{
SetErrorCode(PACKET_BASE_ERROR_CODE_DATA_TOO_LONG);
return *this;
}
if (!CheckHaveEnoughData(sDataLen))
{
SetErrorCode(PACKET_BASE_ERROR_CODE_DATA_NOT_ENOUGH);
}
else
{
// 拷贝数据到缓存中
memcpy(pData, m_pWorkContentBuf + m_usReadPos, sDataLen);
m_usReadPos += sDataLen;
}
return *this;
}
示例4: SetErrorCode
DatabaseResultSet* PostgresPreparedStatement::RunQueryWithResults()
{
for (unsigned int i=0; i<(m_Statements.size()-1); i++)
{
m_Statements[i].RunQuery();
if (m_Statements[i].GetErrorCode() != DATABASE_LAYER_OK)
{
SetErrorCode(m_Statements[i].GetErrorCode());
SetErrorMessage(m_Statements[i].GetErrorMessage());
ThrowDatabaseException();
return NULL;
}
}
PostgresPreparedStatementWrapper* pLastStatement = &(m_Statements[m_Statements.size()-1]);
DatabaseResultSet* pResultSet = pLastStatement->RunQueryWithResults();
if (pLastStatement->GetErrorCode() != DATABASE_LAYER_OK)
{
SetErrorCode(pLastStatement->GetErrorCode());
SetErrorMessage(pLastStatement->GetErrorMessage());
ThrowDatabaseException();
}
LogResultSetForCleanup(pResultSet);
return pResultSet;
}
示例5: token
JSONReader::Token JSONReader::ParseStringToken()
{
Token token(Token::STRING, json_pos_, 1);
wchar_t c = token.NextChar();
while('\0' != c)
{
if('\\' == c)
{
++token.length;
c = token.NextChar();
// 确保转义的正确.
switch(c)
{
case 'x':
if(!ReadHexDigits(token, 2))
{
SetErrorCode(JSON_INVALID_ESCAPE, json_pos_+token.length);
return Token::CreateInvalidToken();
}
break;
case 'u':
if(!ReadHexDigits(token, 4))
{
SetErrorCode(JSON_INVALID_ESCAPE, json_pos_+token.length);
return Token::CreateInvalidToken();
}
break;
case '\\':
case '/':
case 'b':
case 'f':
case 'n':
case 'r':
case 't':
case 'v':
case '"':
break;
default:
SetErrorCode(JSON_INVALID_ESCAPE, json_pos_+token.length);
return Token::CreateInvalidToken();
}
}
else if('"' == c)
{
++token.length;
return token;
}
++token.length;
c = token.NextChar();
}
return Token::CreateInvalidToken();
}
示例6: SetErrorMessage
void FirebirdDatabaseLayer::InterpretErrorCodes()
{
//wxLogDebug(_("FirebirdDatabaseLayer::InterpretErrorCodes()"));
long nSqlCode = m_pInterface->GetIscSqlcode()(*(ISC_STATUS_ARRAY*)m_pStatus);
SetErrorMessage(FirebirdDatabaseLayer::TranslateErrorCodeToString(m_pInterface, nSqlCode, *(ISC_STATUS_ARRAY*)m_pStatus));
if (nSqlCode < -900) // Error codes less than -900 indicate that it wasn't a SQL error but an ibase system error
{
SetErrorCode(FirebirdDatabaseLayer::TranslateErrorCode(*((ISC_STATUS_ARRAY*)m_pStatus)[1]));
}
else
{
SetErrorCode(FirebirdDatabaseLayer::TranslateErrorCode(nSqlCode));
}
}
示例7: json_wide
Value* JSONReader::JsonToValue(const std::string& json, bool check_root,
bool allow_trailing_comma)
{
// 输入必须是UTF-8编码.
if(!IsStringUTF8(json.c_str()))
{
error_code_ = JSON_UNSUPPORTED_ENCODING;
return NULL;
}
// 从UTF8到wstring的转换会移除空字节(好事).
std::wstring json_wide(UTF8ToWide(json));
start_pos_ = json_wide.c_str();
// 当输入的JSON字符串开头有UTF-8的Byte-Order-Mark(0xEF, 0xBB, 0xBF),
// UTF8ToWide()函数会把它转换成BOM(U+FEFF). 为防止JSONReader::BuildValue()
// 函数把它当成非法字符而返回NULL, 如果存在Unicode的BOM则先跳过.
if(!json_wide.empty() && start_pos_[0]==0xFEFF)
{
++start_pos_;
}
json_pos_ = start_pos_;
allow_trailing_comma_ = allow_trailing_comma;
stack_depth_ = 0;
error_code_ = JSON_NO_ERROR;
scoped_ptr<Value> root(BuildValue(check_root));
if(root.get())
{
if(ParseToken().type == Token::END_OF_INPUT)
{
return root.release();
}
else
{
SetErrorCode(JSON_UNEXPECTED_DATA_AFTER_ROOT, json_pos_);
}
}
// "语法错误".
if(error_code_ == 0)
{
SetErrorCode(JSON_SYNTAX_ERROR, json_pos_);
}
return NULL;
}
示例8: wxDatabaseErrorReporter
wxMysqlPreparedStatementParameter::wxMysqlPreparedStatementParameter(MYSQL_BIND* pBind, MYSQL_FIELD* pField)
: wxDatabaseErrorReporter()
{
m_pBind = pBind;
m_pBind->is_null = &m_bIsNull;
// Set the binding properties
m_pBind->buffer_type = pField->type;
m_pBind->buffer_length = pField->length + 1;
//int nType = m_pBind->buffer_type;
//if (nType == MYSQL_TYPE_STRING || nType == MYSQL_TYPE_VAR_STRING || nType == MYSQL_TYPE_BLOB
// || nType == MYSQL_TYPE_TINY_BLOB || nType == MYSQL_TYPE_MEDIUM_BLOB || nType == MYSQL_TYPE_LONG_BLOB)
//{
//wxLogDebug(_("Allocating %ld bytes in the MYSQL_BIND buffer\n"), pField->length);
void* pBuffer = m_Data.bufferValue.GetWriteBuf(m_pBind->buffer_length);
if (pBuffer == 0)
{
SetErrorCode(wxMysqlDatabase::TranslateErrorCode(0));
SetErrorMessage(_("Error allocating buffer"));
ThrowDatabaseException();
}
m_pBind->buffer = pBuffer;
ClearBuffer();
// }
// else
// {
// pCurrentBinding->buffer = malloc(1);
// }
int nType = m_pBind->buffer_type;
if (nType == MYSQL_TYPE_BLOB || nType == MYSQL_TYPE_TINY_BLOB || nType == MYSQL_TYPE_MEDIUM_BLOB
|| nType == MYSQL_TYPE_LONG_BLOB)
m_pBind->length = &m_Data.nBufferLength;
}
示例9: ResetErrorCodes
wxDatabaseResultSet* wxSqlitePreparedStatement::RunQueryWithResults()
{
ResetErrorCodes();
if (m_Statements.size() > 1)
{
for (unsigned int i=0; i<m_Statements.size()-1; i++)
{
int nReturn = sqlite3_step(m_Statements[i]);
if (nReturn != SQLITE_ROW)
sqlite3_reset(m_Statements[i]);
if ((nReturn != SQLITE_ROW) && (nReturn != SQLITE_DONE))
{
wxLogError(_("Error with RunQueryWithResults\n"));
SetErrorCode(wxSqliteDatabase::TranslateErrorCode(nReturn));
SetErrorMessage(ConvertFromUnicodeStream(sqlite3_errmsg(m_pDatabase)));
ThrowDatabaseException();
return NULL;
}
}
}
// Work off the assumption that only the last statement will return result
wxSqliteResultSet* pResultSet = new wxSqliteResultSet(this);
if (pResultSet)
pResultSet->SetEncoding(GetEncoding());
LogResultSetForCleanup(pResultSet);
return pResultSet;
}
示例10: DatabaseLayer
FirebirdDatabaseLayer::FirebirdDatabaseLayer(const wxString& strServer, const wxString& strDatabase, const wxString& strUser, const wxString& strPassword)
: DatabaseLayer()
{
m_pDatabase = NULL;
m_pTransaction = NULL;
m_pStatus = new ISC_STATUS_ARRAY();
#ifndef DONT_USE_DYNAMIC_DATABASE_LAYER_LINKING
m_pInterface = new FirebirdInterface();
if (!m_pInterface->Init())
{
SetErrorCode(DATABASE_LAYER_ERROR_LOADING_LIBRARY);
SetErrorMessage(wxT("Error loading Firebird library"));
ThrowDatabaseException();
return;
}
#endif
m_strServer = strServer;
m_strUser = strUser;
m_strPassword = strPassword;
m_strRole = wxEmptyString;
Open(strDatabase);
}
示例11: WXUNUSED
//void wxOdbcDatabase::InterpretErrorCodes( long nCode, SQLHSTMT stmth_ptr )
void wxOdbcDatabase::InterpretErrorCodes( long WXUNUSED(nCode), void* stmth_ptr )
{
wxLogDebug(_("wxOdbcDatabase::InterpretErrorCodes()\n"));
//if ((nCode != SQL_SUCCESS) ) // && (nCode != SQL_SUCCESS_WITH_INFO))
//{
SQLINTEGER iNativeCode;
SQLTCHAR strState[ERR_STATE_LEN];
SQLTCHAR strBuffer[ERR_BUFFER_LEN];
SQLSMALLINT iMsgLen;
memset(strState, 0, ERR_STATE_LEN*sizeof(SQLTCHAR));
memset(strBuffer, 0, ERR_BUFFER_LEN*sizeof(SQLTCHAR));
if (stmth_ptr)
m_pInterface->GetSQLGetDiagRec()(SQL_HANDLE_STMT, (SQLHSTMT)stmth_ptr, 1, strState, &iNativeCode,
strBuffer, ERR_BUFFER_LEN, &iMsgLen);
else
m_pInterface->GetSQLGetDiagRec()(SQL_HANDLE_DBC, (SQLHDBC)m_sqlHDBC, 1, strState, &iNativeCode,
strBuffer, ERR_BUFFER_LEN, &iMsgLen);
SetErrorCode((int)iNativeCode);
SetErrorMessage(ConvertFromUnicodeStream((char*)strBuffer)); //AML
//AML SetErrorMessage(wxString((wxChar*)strBuffer));
//}
}
示例12: ResetErrorCodes
wxDatabaseResultSet* wxOdbcDatabase::RunQueryWithResults(const wxString& strQuery)
{
ResetErrorCodes();
wxOdbcPreparedStatement* pStatement = (wxOdbcPreparedStatement*)PrepareStatement( strQuery, true );
if ( pStatement )
{
try
{
pStatement->SetOneTimer(true);
wxDatabaseResultSet* pResults = pStatement->RunQueryWithResults(false /*false for "Don't log this result set for cleanup*/);
LogResultSetForCleanup(pResults);
return pResults;
}
catch (...)
{
SetErrorCode(pStatement->GetErrorCode());
SetErrorMessage(pStatement->GetErrorMessage());
wxDELETE( pStatement );
ThrowDatabaseException();
return NULL;
}
}
else
return NULL;
}
示例13: otl_column_desc
// ctor
OTLResultSet::OTLResultSet(otl_stream *otlstream, bool bManageStatement /*= false*/)
{
try
{
m_pResultSet = otlstream;
m_bManageStatement = bManageStatement;
m_readIt.attach(*m_pResultSet);
otl_column_desc* otldesc = m_pResultSet->describe_select(m_colCount);
int nCounter = 1;
for (int i = 0; i < m_colCount; i++)
{
otl_column_desc *newItem = new otl_column_desc();
*newItem = otldesc[i];
m_otldesc.push_back(newItem);
wxString strField = ConvertFromUnicodeStream(otldesc[i].name);
m_FieldLookupMap[strField.Upper()] = nCounter;
nCounter++;
}
}
catch (otl_exception& e)
{
SetErrorCode(OTLDatabaseLayer::TranslateErrorCode(e.code));
SetErrorMessage(ConvertFromUnicodeStream((char*)e.msg));
ThrowDatabaseException();
}
}
示例14: sqlite3_step
bool SqliteResultSet::Next()
{
if (m_pSqliteStatement == NULL)
m_pSqliteStatement = m_pStatement->GetLastStatement();
int nReturn = sqlite3_step(m_pSqliteStatement);
if (nReturn != SQLITE_ROW)
sqlite3_reset(m_pSqliteStatement);
if ((nReturn != SQLITE_ROW) && (nReturn != SQLITE_DONE))
{
wxLogError(_("Error with RunQueryWithResults\n"));
SetErrorCode(SqliteDatabaseLayer::TranslateErrorCode(nReturn));
#if SQLITE_VERSION_NUMBER>=3002002
// sqlite3_db_handle wasn't added to the SQLite3 API until version 3.2.2
SetErrorMessage(ConvertFromUnicodeStream(sqlite3_errmsg(sqlite3_db_handle(m_pSqliteStatement))));
#else
SetErrorMessage(_("Unknown error advancing result set"));
#endif
ThrowDatabaseException();
return false;
}
return (nReturn == SQLITE_ROW);
}
示例15: WXUNUSED
// query database
int wxPostgresDatabase::RunQuery(const wxString& strQuery, bool WXUNUSED(bParseQuery))
{
// PostgreSQL takes care of parsing the queries itself so bParseQuery is ignored
ResetErrorCodes();
wxCharBuffer sqlBuffer = ConvertToUnicodeStream(strQuery);
PGresult* pResultCode = m_pInterface->GetPQexec()((PGconn*)m_pDatabase, sqlBuffer);
if ((pResultCode == NULL) || (m_pInterface->GetPQresultStatus()(pResultCode) != PGRES_COMMAND_OK))
{
SetErrorCode(wxPostgresDatabase::TranslateErrorCode(m_pInterface->GetPQresultStatus()(pResultCode)));
SetErrorMessage(ConvertFromUnicodeStream(m_pInterface->GetPQerrorMessage()((PGconn*)m_pDatabase)));
m_pInterface->GetPQclear()(pResultCode);
ThrowDatabaseException();
return wxDATABASE_QUERY_RESULT_ERROR;
}
else
{
wxString rowsAffected = ConvertFromUnicodeStream(m_pInterface->GetPQcmdTuples()(pResultCode));
long rows = -1;
rowsAffected.ToLong(&rows);
m_pInterface->GetPQclear()(pResultCode);
return (int)rows;
}
}