Files
envi-code/SourceCode/Code2026/tg_shs/inc/dbf/DBFException.h
T
2026-09-28 15:28:50 +08:00

90 lines
2.4 KiB
C++

#if !defined(_DBFEXEPTION_H__INCLUDED_)
#define _DBFEXEPTION_H__INCLUDED_
#define NO_TG_DBF_ERROR 0
#define TG_DBF_ERROR_MIN 3000
#define TG_DBF_ERROR TG_DBF_ERROR_MIN
#define TG_DBF_ERROR_DBFILE_CREATE TG_DBF_ERROR+1
#define TG_DBF_ERROR_DBFILE_OPEN TG_DBF_ERROR+2
#define TG_DBF_ERROR_DBFILE_MEMORYLOAD TG_DBF_ERROR+3
#define TG_DBF_ERROR_DBFHEADER_READ TG_DBF_ERROR+4
#define TG_DBF_ERROR_DBFHEADER_WRITE TG_DBF_ERROR+5
#define TG_DBF_ERROR_NOT_TABLE TG_DBF_ERROR+6
#define TG_DBF_ERROR_NOT_FIELDS TG_DBF_ERROR+7
#define TG_DBF_ERROR_FILE_SIZE TG_DBF_ERROR+8
#define TG_DBF_ERROR_FIELDS_READ TG_DBF_ERROR+9
#define TG_DBF_ERROR_MEMO_OPEN TG_DBF_ERROR+10
#define TG_DBF_ERROR_MEMO_HEAD_READ TG_DBF_ERROR+11
#define TG_DBF_ERROR_MEMO_BLOCK_SIZE TG_DBF_ERROR+12
#define TG_DBF_ERROR_MEMO_FIELD_READ TG_DBF_ERROR+13
#define TG_DBF_ERROR_MEMO_FIELD_WRITE TG_DBF_ERROR+14
#define TG_DBF_ERROR_MEMO_RECORD_READ TG_DBF_ERROR+15
#define TG_DBF_ERROR_MEMO_RECORD_WRITE TG_DBF_ERROR+16
#define TG_DBF_ERROR_RECORD_OUTOFRANGE TG_DBF_ERROR+17
#define TG_DBF_ERROR_RECORD_READ TG_DBF_ERROR+18
#define TG_DBF_ERROR_RECORD_WRITE TG_DBF_ERROR+19
#define TG_DBF_ERROR_MAX TG_DBF_ERROR+19
// Logging helpers
#ifdef _DEBUG
BOOL TGAssertFailedLine(LPCSTR lpszDBFCall, LPCSTR lpszFile, int nLine);
#define DBF_CHECK_ERROR(f, err) if (!(f)) return FALSE;
// do \
// { \
// if(!(f)) \
// if(TGAssertFailedLine(#f,THIS_FILE, __LINE__)) \
// { AfxDebugBreak(); }\
// else TGThrowDBFException(err);\
// } \
// while (0)
#else
#define DBF_CHECK_ERROR(f, err) if(!(f)) return FALSE;
//TGThrowDBFException(err);
#endif // _DEBUG
// Info structures
struct CDBFErrorInfo
{
// Attributes
long m_lErrorCode;
CString m_strDescription;
#ifdef _DEBUG
virtual void Dump(CDumpContext& dc) const;
#endif
};
class TDBFUTILITY_IMPEXP CDBFException : public CException
{
DECLARE_DYNAMIC(CDBFException)
public:
CDBFException();
public:
CDBFErrorInfo* m_pErrorInfo;
long m_nTGDBFError;
public:
void GetErrorInfo(/*int nIndex*/);
public:
virtual ~CDBFException();
virtual BOOL GetErrorMessage(LPTSTR lpszError, UINT nMaxError,
PUINT pnHelpContext = NULL);
protected:
void FillErrorInfo();
};
void AFXAPI TGThrowDBFException(long nTGDBFError = NO_TG_DBF_ERROR);
//{{AFX_INSERT_LOCATION}}
#endif // !defined(_DBFEXEPTION_H__INCLUDED_)