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


C++ CField::IsKey方法代码示例

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


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

示例1: BuildFieldValueList

/**
 * Metodo para montar a lista de labels=valores para uso no
 * no update, note bAllFields, permite levar os null's na query
 */
CString CTableBase::BuildFieldValueList(BOOL bAllFields, BOOL bNoKeyInSet)
{
	CString s;
	POSITION pos = m_mapFields.GetStartPosition();
	CString sKey;
	CField *pClass;
	int counter = 0;
	BOOL usefull = FALSE;

	///Ll## STLOG_WRITE("Inicio CTableBase::BuildFieldValueList()");

	while(pos != NULL)
	{
		m_mapFields.GetNextAssoc( pos, sKey, pClass );

		// Naoadicionar as chaves no set xxxx='xxxx'
		if(pClass->IsKey() && bNoKeyInSet)
			continue;

		if(!bAllFields) // Skipar os nulos !
		{
			if(!pClass->IsNull())
			{
				if(counter++ > 0)
					s += _T(",\r\n");

				usefull = TRUE;

				//if(sKey.Find(' ') > 0)
				s += _T("[") + sKey + _T("]=");
				//else
				//	s += sKey + _T("=");
				
				s += pClass->GetQueryFormatValue();
			}
		}
		else // fazer assign mesmo dos nulos / nao preenchidos !!!
		{
			usefull = TRUE;

			if(counter++ > 0)
				s += _T(",\r\n");

			//if(sKey.Find(' ') > 0)
			s += _T("[") + sKey + _T("]=");
			//else
			//	s += sKey + _T("=");

			if(!pClass->IsNull())
				s += pClass->GetQueryFormatValue();
			else
				s += _T("NULL");
		}
	}

	//STLOG_WRITE(L"CTableBase::BuildFieldValueList: CAMPOS/VALORES: %s", s);

	return s;
}
开发者ID:MFDonadeli,项目名称:PMA,代码行数:63,代码来源:TableBase.cpp

示例2: Reset

/**
 * Metodo para limpar todos os valores dos campos da tabela
 */
void CTableBase::Reset(BOOL bExcludeKeys)
{
	POSITION pos = m_mapFields.GetStartPosition();
	CString sKey;
	CField *pField;

	while(pos != NULL)
	{
		m_mapFields.GetNextAssoc( pos, sKey, pField );
		
		if(pField->IsKey() && bExcludeKeys)
			continue;

		pField->SetValue(_T(""));
	}
}
开发者ID:MFDonadeli,项目名称:PMA,代码行数:19,代码来源:TableBase.cpp

示例3: BuildWhereList

/**
 * Metodo para montar a lista de label=valor para uso no
 * where clause da query
 */ 
CString CTableBase::BuildWhereList(BOOL bOnlyKeys, BOOL bIgnoreNULL)
{
	CString s(_T("WHERE "));
	POSITION pos = m_mapFields.GetStartPosition();
	CString sKey;
	CField *pClass;
	int counter = 0;
	BOOL usefull = FALSE;

	while(pos != NULL)
	{
		m_mapFields.GetNextAssoc( pos, sKey, pClass );

		// Se o campo estiver na lista de ignore... nao usar ...
		if(m_ignoreFields.Find(sKey) != NULL)
			continue;

		// Se nao for chave ...
		if(bOnlyKeys && !pClass->IsKey())
			continue;

		if(!pClass->IsNull())
		{
			usefull = TRUE;

			CString s1 = pClass->GetQueryFormatValue();

			if(s1.CompareNoCase(_T("NULL")) == 0 || 
			   s1.CompareNoCase(_T("\"NULL\"")) == 0 )
			{
				if(!bIgnoreNULL)
				{
					if(counter++ > 0)
						s += _T("\r\n AND ");

					s += _T("[") + sKey + _T("] IS NULL");
				}
			}
			else
			{
				if(counter++ > 0)
					s += _T("\r\n AND ");

				//if(sKey.Find(' ') > 0)
				s += _T("[") + sKey + _T("]=");
				//else
				//	s += sKey + _T("=");
				
				s += s1;
			}
		}
		else
		{
			if(!bIgnoreNULL)
			{
				if(counter++ > 0)
					s += _T("\r\n AND ");

				s += _T("[") + sKey + _T("] IS NULL");
			}
		}
	}

	if(!usefull)
		return _T("");

	return s;
}
开发者ID:MFDonadeli,项目名称:PMA,代码行数:72,代码来源:TableBase.cpp


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