当前位置: 首页>>代码示例>>C++>>正文


C++ SetErrorCode函数代码示例

本文整理汇总了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);
			}
		}
	}
}
开发者ID:russdaygh,项目名称:SpaceshipsInSpace,代码行数:31,代码来源:LuaUtils.cpp

示例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);
}
开发者ID:mtangoo,项目名称:wxDatabase,代码行数:29,代码来源:mysql_preparedstatement_wrapper.cpp

示例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;
}
开发者ID:MBeanwenshengming,项目名称:linuxgameserver,代码行数:29,代码来源:LWorkItem.cpp

示例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;
}
开发者ID:05storm26,项目名称:codelite,代码行数:25,代码来源:PostgresPreparedStatement.cpp

示例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();
}
开发者ID:kanego,项目名称:CoreProject,代码行数:52,代码来源:json_reader.cpp

示例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));
  }
}
开发者ID:05storm26,项目名称:codelite,代码行数:15,代码来源:FirebirdDatabaseLayer.cpp

示例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;
}
开发者ID:kanego,项目名称:CoreProject,代码行数:48,代码来源:json_reader.cpp

示例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;
}
开发者ID:mtangoo,项目名称:wxDatabase,代码行数:34,代码来源:mysql_preparedstatement_parameter.cpp

示例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;
}
开发者ID:mtangoo,项目名称:wxDatabase,代码行数:32,代码来源:sqlite_preparedstatement.cpp

示例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);
}
开发者ID:05storm26,项目名称:codelite,代码行数:25,代码来源:FirebirdDatabaseLayer.cpp

示例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));
  //}
}
开发者ID:mtangoo,项目名称:wxDatabase,代码行数:27,代码来源:odbc_database.cpp

示例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;
}
开发者ID:mtangoo,项目名称:wxDatabase,代码行数:27,代码来源:odbc_database.cpp

示例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();
  }
}
开发者ID:05storm26,项目名称:codelite,代码行数:27,代码来源:OTLResultSet.cpp

示例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);
}
开发者ID:05storm26,项目名称:codelite,代码行数:25,代码来源:SqliteResultSet.cpp

示例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;
    }
}
开发者ID:mtangoo,项目名称:wxDatabase,代码行数:26,代码来源:postgresql_database.cpp


注:本文中的SetErrorCode函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。