www.pudn.com > goodchessGame.zip > Field.cpp


#include "stdafx.h" 
#include "field.h" 
 
BOOL IsExistentField(CDaoTableDef *pTableDef, CString strFieldName) 
{ 
	if(pTableDef == NULL) 
		return FALSE; 
 
	BOOL bDuplicateFieldName = TRUE; 
 
	CDaoFieldInfo fieldInfo; 
 
	TRY 
	{ 
		pTableDef->GetFieldInfo(strFieldName, fieldInfo); 
	} 
	CATCH (CDaoException, e) 
	{ 
		if(e->m_pErrorInfo->m_lErrorCode == 3265) 
			bDuplicateFieldName = FALSE; 
	} 
	AND_CATCH (CMemoryException, e) 
	{ 
	} 
	END_CATCH 
 
	return bDuplicateFieldName; 
} 
 
BOOL createNewField(CDaoTableDef *pTableDef, CDaoFieldInfo *pFieldInfo) 
{ 
	if(pTableDef == NULL) 
		return FALSE; 
 
	if(IsExistentField(pTableDef, pFieldInfo->m_strName)) 
	{ 
		AfxMessageBox(_T("A field by that name already exists.")); 
		return FALSE; 
	} 
 
	BOOL bCreateFailed = FALSE; 
 
	TRY 
	{ 
		pTableDef->CreateField(*pFieldInfo); 
	} 
	CATCH (CDaoException ,e) 
	{ 
		CString message = _T("Couldn't create field--Exception: "); 
		message += e->m_pErrorInfo->m_strDescription; 
 
		AfxMessageBox(message); 
 
		bCreateFailed = TRUE; 
	} 
	AND_CATCH (CMemoryException ,e) 
	{ 
		AfxMessageBox(_T("Failed to create field--Memory Exception thrown. ")); 
 
		bCreateFailed = TRUE; 
	} 
	END_CATCH 
 
	return (!bCreateFailed); 
} 
 
BOOL deleteField(CDaoTableDef *pTableDef, CString strFieldName) 
{ 
	if(pTableDef == NULL) 
		return FALSE; 
 
	BOOL bSuccess = TRUE; 
 
	TRY 
	{ 
		pTableDef->DeleteField(strFieldName); 
	} 
	CATCH (CDaoException, e) 
	{ 
		CString strMessage = _T("Couldn't delete the field--Exception: "); 
		strMessage += e->m_pErrorInfo->m_strDescription; 
 
		AfxMessageBox(strMessage); 
 
		bSuccess = FALSE; 
	} 
	AND_CATCH (CMemoryException, e) 
	{ 
		AfxMessageBox(_T("Failed to delete the field--Memory exception thrown.")); 
 
		bSuccess = FALSE; 
	} 
	END_CATCH 
 
	return bSuccess; 
}