📄 error.cpp
字号:
//-----------------------------------------------------------------------------
// Microsoft OLE DB RowsetViewer
// Copyright (C) 1994 - 1998 By Microsoft Corporation.
//
// @doc
//
// @module ERROR.CPP
//
//-----------------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////
// Includes
//
////////////////////////////////////////////////////////////////////////
#include "Common.h"
#include "Error.h"
#include "Property.h"
#include "DataSource.h" //IID_IAggregate
#include <olectl.h> //IConnectionPoints interface
////////////////////////////////////////////////////////////////////////
// Globals
//
////////////////////////////////////////////////////////////////////////
DWORD g_dwErrorPost = EP_ERRORINFO_FAILURE | EP_HRESULT_NOERRORINFO;
BOOL SetErrorPosting(ERRORPOST eErrorPost, BOOL fSet)
{
if(fSet)
g_dwErrorPost |= eErrorPost;
else
g_dwErrorPost &= ~eErrorPost;
return TRUE;
};
BOOL GetErrorPosting(ERRORPOST eErrorPost)
{
return g_dwErrorPost & eErrorPost;
};
/////////////////////////////////////////////////////////////////////////////
// Interface Map
//
/////////////////////////////////////////////////////////////////////////////
const static GUIDMAP g_rgInterfaceMap[] =
{
//TEnumerator
& VALUE_CHAR(IID_IParseDisplayName),
& VALUE_CHAR(IID_ISourcesRowset),
//TDataSource
& VALUE_CHAR(IID_IDBInitialize),
& VALUE_CHAR(IID_IDBProperties),
& VALUE_CHAR(IID_IDBCreateSession),
& VALUE_CHAR(IID_IDBInfo),
& VALUE_CHAR(IID_IPersist),
& VALUE_CHAR(IID_IDBAsynchStatus),
& VALUE_CHAR(IID_IDBDataSourceAdmin),
& VALUE_CHAR(IID_IPersistFile),
& VALUE_CHAR(IID_ISupportErrorInfo),
//TSession
& VALUE_CHAR(IID_IGetDataSource),
& VALUE_CHAR(IID_IOpenRowset),
& VALUE_CHAR(IID_ISessionProperties),
& VALUE_CHAR(IID_IDBCreateCommand),
& VALUE_CHAR(IID_IDBSchemaRowset),
& VALUE_CHAR(IID_IIndexDefinition),
& VALUE_CHAR(IID_ITableDefinition),
& VALUE_CHAR(IID_ITransactionJoin),
& VALUE_CHAR(IID_ITransactionLocal),
& VALUE_CHAR(IID_ITransactionObject),
//TCommand
& VALUE_CHAR(IID_IAccessor),
& VALUE_CHAR(IID_IColumnsInfo),
& VALUE_CHAR(IID_ICommand),
& VALUE_CHAR(IID_ICommandProperties),
& VALUE_CHAR(IID_ICommandText),
& VALUE_CHAR(IID_IConvertType),
& VALUE_CHAR(IID_IColumnsRowset),
& VALUE_CHAR(IID_ICommandPrepare),
& VALUE_CHAR(IID_ICommandWithParameters),
//TRowset
& VALUE_CHAR(IID_IRowset),
& VALUE_CHAR(IID_IRowsetInfo),
& VALUE_CHAR(IID_IColumnsRowset),
& VALUE_CHAR(IID_IConnectionPointContainer),
& VALUE_CHAR(IID_IRowsetChange),
& VALUE_CHAR(IID_IRowsetIdentity),
& VALUE_CHAR(IID_IRowsetLocate),
& VALUE_CHAR(IID_IRowsetFind),
& VALUE_CHAR(IID_IRowsetView),
& VALUE_CHAR(IID_IChapteredRowset),
& VALUE_CHAR(IID_IRowsetResynch),
& VALUE_CHAR(IID_IRowsetScroll),
& VALUE_CHAR(IID_IRowsetUpdate),
//TTransaction
& VALUE_CHAR(IID_ITransaction),
& VALUE_CHAR(IID_ITransactionOptions),
//TMultipleResults
& VALUE_CHAR(IID_IMultipleResults),
//TView
& VALUE_CHAR(IID_IViewChapter),
// & VALUE_CHAR(IID_IViewFilter),
& VALUE_CHAR(IID_IViewRowset),
& VALUE_CHAR(IID_IViewSort),
//TIndex
& VALUE_CHAR(IID_IRowsetIndex),
//TError
& VALUE_CHAR(IID_IErrorInfo),
& VALUE_CHAR(IID_IErrorRecords),
& VALUE_CHAR(IID_ISQLErrorInfo),
//Connection Points
& VALUE_CHAR(IID_IConnectionPoint),
& VALUE_CHAR(IID_IRowsetNotify),
& VALUE_CHAR(IID_IDBAsynchNotify),
& VALUE_CHAR(IID_IRowPositionChange),
//Misc
& VALUE_CHAR(IID_IRowPosition),
& VALUE_CHAR(IID_ISequentialStream),
//Service Components
& VALUE_CHAR(IID_IDBPromptInitialize),
& VALUE_CHAR(IID_IDataInitialize),
//Aggregation
& VALUE_CHAR(IID_IAggregate),
//IUnknown
& VALUE_CHAR(IID_IUnknown),
& VALUE_CHAR(IID_NULL),
};
const static ULONG g_cInterfaceMaps = NUMELE(g_rgInterfaceMap);
////////////////////////////////////////////////////////////////////////
// rgDBTypes
//
////////////////////////////////////////////////////////////////////////
const static WIDENAMEMAP g_rgDBTypes[] =
{
VALUE_WCHAR(DBTYPE_EMPTY ),
VALUE_WCHAR(DBTYPE_NULL ),
VALUE_WCHAR(DBTYPE_I2 ),
VALUE_WCHAR(DBTYPE_I4 ),
VALUE_WCHAR(DBTYPE_R4 ),
VALUE_WCHAR(DBTYPE_R8 ),
VALUE_WCHAR(DBTYPE_CY ),
VALUE_WCHAR(DBTYPE_DATE ),
VALUE_WCHAR(DBTYPE_BSTR ),
VALUE_WCHAR(DBTYPE_IDISPATCH ),
VALUE_WCHAR(DBTYPE_ERROR ),
VALUE_WCHAR(DBTYPE_BOOL ),
VALUE_WCHAR(DBTYPE_VARIANT ),
VALUE_WCHAR(DBTYPE_IUNKNOWN ),
VALUE_WCHAR(DBTYPE_DECIMAL ),
VALUE_WCHAR(DBTYPE_UI1 ),
VALUE_WCHAR(DBTYPE_ARRAY ),
VALUE_WCHAR(DBTYPE_BYREF ),
VALUE_WCHAR(DBTYPE_I1 ),
VALUE_WCHAR(DBTYPE_UI2 ),
VALUE_WCHAR(DBTYPE_UI4 ),
VALUE_WCHAR(DBTYPE_I8 ),
VALUE_WCHAR(DBTYPE_UI8 ),
VALUE_WCHAR(DBTYPE_GUID ),
VALUE_WCHAR(DBTYPE_VECTOR ),
VALUE_WCHAR(DBTYPE_RESERVED ),
VALUE_WCHAR(DBTYPE_BYTES ),
VALUE_WCHAR(DBTYPE_STR ),
VALUE_WCHAR(DBTYPE_WSTR ),
VALUE_WCHAR(DBTYPE_NUMERIC ),
VALUE_WCHAR(DBTYPE_UDT ),
VALUE_WCHAR(DBTYPE_DBDATE ),
VALUE_WCHAR(DBTYPE_DBTIME ),
VALUE_WCHAR(DBTYPE_DBTIMESTAMP ),
VALUE_WCHAR(DBTYPE_HCHAPTER ),
//2.0 Types
VALUE_WCHAR(DBTYPE_FILETIME ),
VALUE_WCHAR(DBTYPE_PROPVARIANT ),
VALUE_WCHAR(DBTYPE_VARNUMERIC ),
};
const static ULONG g_cDBTypes = NUMELE(g_rgDBTypes);
////////////////////////////////////////////////////////////////////////
// rgVariantTypes
//
////////////////////////////////////////////////////////////////////////
const static NAMEMAP g_rgVariantTypes[] =
{
VALUE_CHAR(VT_EMPTY ),
VALUE_CHAR(VT_NULL ),
VALUE_CHAR(VT_I2 ),
VALUE_CHAR(VT_I4 ),
VALUE_CHAR(VT_R4 ),
VALUE_CHAR(VT_R8 ),
VALUE_CHAR(VT_CY ),
VALUE_CHAR(VT_DATE ),
VALUE_CHAR(VT_BSTR ),
VALUE_CHAR(VT_DISPATCH ),
VALUE_CHAR(VT_ERROR ),
VALUE_CHAR(VT_BOOL ),
VALUE_CHAR(VT_VARIANT ),
VALUE_CHAR(VT_UNKNOWN ),
VALUE_CHAR(VT_DECIMAL ),
VALUE_CHAR(VT_I1 ),
VALUE_CHAR(VT_UI1 ),
VALUE_CHAR(VT_UI2 ),
VALUE_CHAR(VT_UI4 ),
VALUE_CHAR(VT_I8 ),
VALUE_CHAR(VT_UI8 ),
VALUE_CHAR(VT_INT ),
VALUE_CHAR(VT_UINT ),
VALUE_CHAR(VT_VOID ),
VALUE_CHAR(VT_HRESULT ),
VALUE_CHAR(VT_PTR ),
VALUE_CHAR(VT_SAFEARRAY ),
VALUE_CHAR(VT_CARRAY ),
VALUE_CHAR(VT_USERDEFINED ),
VALUE_CHAR(VT_LPSTR ),
VALUE_CHAR(VT_LPWSTR ),
VALUE_CHAR(VT_FILETIME ),
VALUE_CHAR(VT_BLOB ),
VALUE_CHAR(VT_STREAM ),
VALUE_CHAR(VT_STORAGE ),
VALUE_CHAR(VT_STREAMED_OBJECT ),
VALUE_CHAR(VT_STORED_OBJECT ),
VALUE_CHAR(VT_BLOB_OBJECT ),
VALUE_CHAR(VT_CF ),
VALUE_CHAR(VT_CLSID ),
VALUE_CHAR(VT_VECTOR ),
VALUE_CHAR(VT_ARRAY ),
VALUE_CHAR(VT_BYREF ),
VALUE_CHAR(VT_RESERVED ),
VALUE_CHAR(VT_ILLEGAL ),
VALUE_CHAR(VT_ILLEGALMASKED ),
VALUE_CHAR(VT_TYPEMASK ),
};
const static ULONG g_cVariantTypes = NUMELE(g_rgVariantTypes);
////////////////////////////////////////////////////////////////////////
// ERRORMAP
//
////////////////////////////////////////////////////////////////////////
const static WIDENAMEMAP g_rgErrorMap[] =
{
//System Success
VALUE_WCHAR(S_OK),
VALUE_WCHAR(S_FALSE),
//System Errors
VALUE_WCHAR(E_FAIL),
VALUE_WCHAR(E_INVALIDARG),
VALUE_WCHAR(E_OUTOFMEMORY),
VALUE_WCHAR(E_NOINTERFACE),
VALUE_WCHAR(REGDB_E_CLASSNOTREG),
VALUE_WCHAR(CLASS_E_NOAGGREGATION),
VALUE_WCHAR(E_UNEXPECTED),
VALUE_WCHAR(E_NOTIMPL),
VALUE_WCHAR(E_POINTER),
VALUE_WCHAR(E_HANDLE),
VALUE_WCHAR(E_ABORT),
VALUE_WCHAR(E_ACCESSDENIED),
VALUE_WCHAR(E_PENDING),
//OLE DB Warnings 1.1
VALUE_WCHAR(DB_S_ROWLIMITEXCEEDED),
VALUE_WCHAR(DB_S_COLUMNTYPEMISMATCH),
VALUE_WCHAR(DB_S_TYPEINFOOVERRIDDEN),
VALUE_WCHAR(DB_S_BOOKMARKSKIPPED),
VALUE_WCHAR(DB_S_ENDOFROWSET),
VALUE_WCHAR(DB_S_COMMANDREEXECUTED),
VALUE_WCHAR(DB_S_BUFFERFULL),
VALUE_WCHAR(DB_S_NORESULT),
VALUE_WCHAR(DB_S_CANTRELEASE),
VALUE_WCHAR(DB_S_DIALECTIGNORED),
VALUE_WCHAR(DB_S_UNWANTEDPHASE),
VALUE_WCHAR(DB_S_UNWANTEDREASON),
VALUE_WCHAR(DB_S_COLUMNSCHANGED),
VALUE_WCHAR(DB_S_ERRORSRETURNED),
VALUE_WCHAR(DB_S_BADROWHANDLE),
VALUE_WCHAR(DB_S_DELETEDROW),
VALUE_WCHAR(DB_S_STOPLIMITREACHED),
VALUE_WCHAR(DB_S_LOCKUPGRADED),
VALUE_WCHAR(DB_S_PROPERTIESCHANGED),
VALUE_WCHAR(DB_S_ERRORSOCCURRED),
VALUE_WCHAR(DB_S_PARAMUNAVAILABLE),
VALUE_WCHAR(DB_S_MULTIPLECHANGES),
//OLE DB Errors 1.1
VALUE_WCHAR(DB_E_BADACCESSORHANDLE),
VALUE_WCHAR(DB_E_ROWLIMITEXCEEDED),
VALUE_WCHAR(DB_E_READONLYACCESSOR),
VALUE_WCHAR(DB_E_SCHEMAVIOLATION),
VALUE_WCHAR(DB_E_BADROWHANDLE),
VALUE_WCHAR(DB_E_OBJECTOPEN),
VALUE_WCHAR(DB_E_CANTCONVERTVALUE),
VALUE_WCHAR(DB_E_BADBINDINFO),
VALUE_WCHAR(DB_SEC_E_PERMISSIONDENIED),
VALUE_WCHAR(DB_E_NOTAREFERENCECOLUMN),
VALUE_WCHAR(DB_E_NOCOMMAND),
VALUE_WCHAR(DB_E_BADBOOKMARK),
VALUE_WCHAR(DB_E_BADLOCKMODE),
VALUE_WCHAR(DB_E_PARAMNOTOPTIONAL),
VALUE_WCHAR(DB_E_BADCOLUMNID),
VALUE_WCHAR(DB_E_BADRATIO),
VALUE_WCHAR(DB_E_ERRORSINCOMMAND),
VALUE_WCHAR(DB_E_CANTCANCEL),
VALUE_WCHAR(DB_E_DIALECTNOTSUPPORTED),
VALUE_WCHAR(DB_E_DUPLICATEDATASOURCE),
VALUE_WCHAR(DB_E_CANNOTRESTART),
VALUE_WCHAR(DB_E_NOTFOUND),
VALUE_WCHAR(DB_E_NEWLYINSERTED),
VALUE_WCHAR(DB_E_UNSUPPORTEDCONVERSION),
VALUE_WCHAR(DB_E_BADSTARTPOSITION),
VALUE_WCHAR(DB_E_NOTREENTRANT),
VALUE_WCHAR(DB_E_ERRORSOCCURRED),
VALUE_WCHAR(DB_E_NOAGGREGATION),
VALUE_WCHAR(DB_E_DELETEDROW),
VALUE_WCHAR(DB_E_CANTFETCHBACKWARDS),
VALUE_WCHAR(DB_E_ROWSNOTRELEASED),
VALUE_WCHAR(DB_E_BADSTORAGEFLAG),
VALUE_WCHAR(DB_E_BADSTATUSVALUE),
VALUE_WCHAR(DB_E_CANTSCROLLBACKWARDS),
VALUE_WCHAR(DB_E_MULTIPLESTATEMENTS),
VALUE_WCHAR(DB_E_INTEGRITYVIOLATION),
VALUE_WCHAR(DB_E_BADTYPENAME),
VALUE_WCHAR(DB_E_ABORTLIMITREACHED),
VALUE_WCHAR(DB_E_DUPLICATEINDEXID),
VALUE_WCHAR(DB_E_NOINDEX),
VALUE_WCHAR(DB_E_INDEXINUSE),
VALUE_WCHAR(DB_E_NOTABLE),
VALUE_WCHAR(DB_E_CONCURRENCYVIOLATION),
VALUE_WCHAR(DB_E_BADCOPY),
VALUE_WCHAR(DB_E_BADPRECISION),
VALUE_WCHAR(DB_E_BADSCALE),
VALUE_WCHAR(DB_E_BADID),
VALUE_WCHAR(DB_E_BADTYPE),
VALUE_WCHAR(DB_E_DUPLICATECOLUMNID),
VALUE_WCHAR(DB_E_DUPLICATETABLEID),
VALUE_WCHAR(DB_E_TABLEINUSE),
VALUE_WCHAR(DB_E_NOLOCALE),
VALUE_WCHAR(DB_E_BADRECORDNUM),
VALUE_WCHAR(DB_E_BOOKMARKSKIPPED),
VALUE_WCHAR(DB_E_BADPROPERTYVALUE),
VALUE_WCHAR(DB_E_INVALID),
VALUE_WCHAR(DB_E_BADACCESSORFLAGS),
VALUE_WCHAR(DB_E_BADSTORAGEFLAGS),
VALUE_WCHAR(DB_E_BYREFACCESSORNOTSUPPORTED),
VALUE_WCHAR(DB_E_NULLACCESSORNOTSUPPORTED),
VALUE_WCHAR(DB_E_NOTPREPARED),
VALUE_WCHAR(DB_E_BADACCESSORTYPE),
VALUE_WCHAR(DB_E_WRITEONLYACCESSOR),
VALUE_WCHAR(DB_SEC_E_AUTH_FAILED),
VALUE_WCHAR(DB_E_CANCELED),
VALUE_WCHAR(DB_E_BADSOURCEHANDLE),
VALUE_WCHAR(DB_E_PARAMUNAVAILABLE),
VALUE_WCHAR(DB_E_ALREADYINITIALIZED),
VALUE_WCHAR(DB_E_NOTSUPPORTED),
VALUE_WCHAR(DB_E_MAXPENDCHANGESEXCEEDED),
VALUE_WCHAR(DB_E_BADORDINAL),
VALUE_WCHAR(DB_E_PENDINGCHANGES),
VALUE_WCHAR(DB_E_DATAOVERFLOW),
VALUE_WCHAR(DB_E_BADHRESULT),
VALUE_WCHAR(DB_E_BADLOOKUPID),
VALUE_WCHAR(DB_E_BADDYNAMICERRORID),
VALUE_WCHAR(DB_E_PENDINGINSERT),
VALUE_WCHAR(DB_E_BADCONVERTFLAG),
VALUE_WCHAR(DB_E_BADPARAMETERNAME),
VALUE_WCHAR(DB_E_MULTIPLESTORAGE),
VALUE_WCHAR(DB_E_CANTFILTER),
VALUE_WCHAR(DB_E_CANTORDER),
//OLE DB Warnings 1.5
VALUE_WCHAR(DB_S_ASYNCHRONOUS),
VALUE_WCHAR(DB_S_UNWANTEDOPERATION),
//OLE DB Errors 1.5
VALUE_WCHAR(DB_E_BADCHAPTER),
VALUE_WCHAR(DB_E_BADCOMPAREOP),
//OLE DB Warnings 2.0
VALUE_WCHAR(DB_S_NONEXTROWSET),
//OLE DB Errors 2.0
VALUE_WCHAR(DB_E_BADVALUES),
VALUE_WCHAR(DB_E_NOQUERY),
VALUE_WCHAR(DB_E_ROWSETINCOMMAND),
VALUE_WCHAR(DB_E_CANTTRANSLATE),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -