Files
envi-code/SourceCode/Code2026/tg_shs/shs_dbf/DBFException.cpp
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

95 lines
1.9 KiB
C++

#include "stdafx.h"
#include "DBFDef.h"
#include "DBFException.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#ifdef _DEBUG
BOOL TGAssertFailedLine(LPCSTR lpszDBFCall, LPCSTR lpszFile, int nLine)
{
if (afxTraceFlags & traceDatabase)
{
TRACE0("\nDBF Call Failed.");
TRACE1("\n\t%hs", lpszDBFCall);
TRACE2("\n\tIn file %hs on line %d", lpszFile, nLine);
}
return AfxAssertFailedLine(lpszFile, nLine);
}
#endif // _DEBUG
#ifdef _DEBUG
void CDBFErrorInfo::Dump(CDumpContext& dc) const
{
dc << "a CDaoErrorInfo at " << (void*)this;
dc << "\nm_lErrorCode = " << m_lErrorCode;
// dc << "\nm_strSource = " << m_strSource;
dc << "\nm_strDescription = " << m_strDescription;
// dc << "\nm_strHelpFile = " << m_strHelpFile;
// dc << "\nm_lHelpContext = " << m_lHelpContext;
dc << "\n";
}
#endif // _DEBUG
IMPLEMENT_DYNAMIC(CDBFException, CException)
CDBFException::CDBFException()
{
m_pErrorInfo = NULL;
}
CDBFException::~CDBFException()
{
delete m_pErrorInfo;
m_pErrorInfo = NULL;
}
// Operations
void CDBFException::GetErrorInfo()
{
FillErrorInfo();
}
// Implementation
void CDBFException::FillErrorInfo()
{
// Allocate the error info structure if necessary
if (m_pErrorInfo == NULL)
m_pErrorInfo = new CDBFErrorInfo;
m_pErrorInfo->m_lErrorCode = m_nTGDBFError;
}
BOOL CDBFException::GetErrorMessage(LPTSTR lpszError, UINT nMaxError,
PUINT pnHelpContext)
{
if (pnHelpContext != NULL)
*pnHelpContext = 0;
CString strError;
if(!strError.LoadString(m_nTGDBFError))
{
strError.Format(_T("00000000%X"),m_nTGDBFError);
strError = "Error number 0x" + strError.Right(8) + ".";
}
lstrcpyn(lpszError, strError, nMaxError-1);
lpszError[nMaxError-1] = '\0';
return TRUE;
}
void AFXAPI TGThrowDBFException(long nTGDBFError)
{
CDBFException* pException;
pException = new CDBFException;
pException->m_nTGDBFError = nTGDBFError;
THROW(pException);
}