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


C++ CConnect::getEnvHandle方法代码示例

本文整理汇总了C++中CConnect::getEnvHandle方法的典型用法代码示例。如果您正苦于以下问题:C++ CConnect::getEnvHandle方法的具体用法?C++ CConnect::getEnvHandle怎么用?C++ CConnect::getEnvHandle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CConnect的用法示例。


在下文中一共展示了CConnect::getEnvHandle方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: FreeHandle

SQLRETURN ODBC::FreeHandle(SQLSMALLINT HandleType, 
			SQLHANDLE Handle)
{
	CEnv* pEnv;
	CConnect* pConnect;
	CStmt* pStmt;
	CDesc* pDesc;

	switch (HandleType)
	{
	case SQL_HANDLE_ENV:
		delete (CEnv *)Handle;
		break;
	case SQL_HANDLE_DBC:
		pConnect = (CConnect *)Handle;
		pEnv = pConnect->getEnvHandle();
		if(TryEnterCriticalSection(&pEnv->m_CSObject))
		{
			if(pEnv->m_CSObject.RecursionCount > 1)
			{
  			    pConnect->setDiagRec(DRIVER_ERROR, IDS_HY_000, 0, "The handle is in use and cannot be freed.");
				LeaveCriticalSection(&pEnv->m_CSObject);
				return SQL_ERROR;
			}
		}
		else
		{
		   EnterCriticalSection(&pEnv->m_CSObject);
		}
		delete pConnect;
		LeaveCriticalSection(&pEnv->m_CSObject);
		break;
	case SQL_HANDLE_STMT:
		pStmt = (CStmt *)Handle;
		pConnect = pStmt->getConnectHandle();
		if(TryEnterCriticalSection(&pConnect->m_CSObject))
		{
			if(pConnect->m_CSObject.RecursionCount > 1)
			{
  			    pStmt->setDiagRec(DRIVER_ERROR, IDS_HY_000, 0, "The handle is in use and cannot be freed.");
				LeaveCriticalSection(&pConnect->m_CSObject);
				return SQL_ERROR;
			}
		}
		else
		{
		   EnterCriticalSection(&pConnect->m_CSObject);
		}
		delete pStmt;
		LeaveCriticalSection(&pConnect->m_CSObject);
		break;
	case SQL_HANDLE_DESC:
		pDesc = (CDesc *)Handle;
		pConnect = pDesc->getDescConnect();
		if(TryEnterCriticalSection(&pConnect->m_CSObject))
		{
			if(pConnect->m_CSObject.RecursionCount > 1)
			{
  			    pDesc->setDiagRec(DRIVER_ERROR, IDS_HY_000, 0, "The handle is in use and cannot be freed.");
				LeaveCriticalSection(&pConnect->m_CSObject);
				return SQL_ERROR;
			}
		}
		else
		{
		   EnterCriticalSection(&pConnect->m_CSObject);
		}
		delete pDesc;
		LeaveCriticalSection(&pConnect->m_CSObject);
		break;
	default:
		return SQL_INVALID_HANDLE;
	}
	return SQL_SUCCESS;

}
开发者ID:AlexPeng19,项目名称:incubator-trafodion,代码行数:76,代码来源:sqlhandle.cpp


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