📄 oledb.h
字号:
BYTE scale;
BYTE sign;
};
USHORT signscale;
};
ULONG Hi32;
union {
struct {
#ifdef _MAC
ULONG Mid32;
ULONG Lo32;
#else
ULONG Lo32;
ULONG Mid32;
#endif
};
ULONGLONG Lo64;
};
} DECIMAL;
#define DECIMAL_NEG ((BYTE)0x80)
#define DECIMAL_SETZERO(dec) {(dec).Lo64 = 0; (dec).Hi32 = 0; (dec).signscale = 0;}
#endif // DECIMAL_SETZERO
#endif // DECIMAL_NEG
typedef struct tagDBVECTOR
{
DBLENGTH size;
/* [size_is] */ void __RPC_FAR *ptr;
} DBVECTOR;
typedef struct tagDBDATE
{
SHORT year;
USHORT month;
USHORT day;
} DBDATE;
typedef struct tagDBTIME
{
USHORT hour;
USHORT minute;
USHORT second;
} DBTIME;
typedef struct tagDBTIMESTAMP
{
SHORT year;
USHORT month;
USHORT day;
USHORT hour;
USHORT minute;
USHORT second;
ULONG fraction;
} DBTIMESTAMP;
//@@@+ V2.0
#if( OLEDBVER >= 0x0200 )
#if !defined(_WINBASE_) && !defined(_FILETIME_)
#define _FILETIME_
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
#endif // !_FILETIME
#ifdef __BORLANDC__ /* This was removed by MS for some reason */
typedef struct tagDBFILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} DBFILETIME;
#endif
typedef signed char SBYTE;
typedef struct tagDB_VARNUMERIC
{
BYTE precision;
SBYTE scale;
BYTE sign;
BYTE val[ 1 ];
} DB_VARNUMERIC;
#endif // OLEDBVER >= 0x0200
//@@@- V2.0
//@@@+ V2.1
#if( OLEDBVER >= 0x0210 )
typedef struct _SEC_OBJECT_ELEMENT
{
GUID guidObjectType;
DBID ObjectID;
} SEC_OBJECT_ELEMENT;
typedef struct _SEC_OBJECT
{
DWORD cObjects;
/* [size_is] */ SEC_OBJECT_ELEMENT __RPC_FAR *prgObjects;
} SEC_OBJECT;
typedef struct tagDBIMPLICITSESSION
{
IUnknown __RPC_FAR *pUnkOuter;
IID __RPC_FAR *piid;
IUnknown __RPC_FAR *pSession;
} DBIMPLICITSESSION;
#endif // OLEDBVER >= 0x0210
//@@@- V2.1
typedef WORD DBTYPE;
enum DBTYPEENUM
{ DBTYPE_EMPTY = 0,
DBTYPE_NULL = 1,
DBTYPE_I2 = 2,
DBTYPE_I4 = 3,
DBTYPE_R4 = 4,
DBTYPE_R8 = 5,
DBTYPE_CY = 6,
DBTYPE_DATE = 7,
DBTYPE_BSTR = 8,
DBTYPE_IDISPATCH = 9,
DBTYPE_ERROR = 10,
DBTYPE_BOOL = 11,
DBTYPE_VARIANT = 12,
DBTYPE_IUNKNOWN = 13,
DBTYPE_DECIMAL = 14,
DBTYPE_UI1 = 17,
DBTYPE_ARRAY = 0x2000,
DBTYPE_BYREF = 0x4000,
DBTYPE_I1 = 16,
DBTYPE_UI2 = 18,
DBTYPE_UI4 = 19,
DBTYPE_I8 = 20,
DBTYPE_UI8 = 21,
DBTYPE_GUID = 72,
DBTYPE_VECTOR = 0x1000,
DBTYPE_RESERVED = 0x8000,
DBTYPE_BYTES = 128,
DBTYPE_STR = 129,
DBTYPE_WSTR = 130,
DBTYPE_NUMERIC = 131,
DBTYPE_UDT = 132,
DBTYPE_DBDATE = 133,
DBTYPE_DBTIME = 134,
DBTYPE_DBTIMESTAMP = 135
};
//@@@+ V1.5
#if( OLEDBVER >= 0x0150 )
enum DBTYPEENUM15
{ DBTYPE_HCHAPTER = 136
};
#endif // OLEDBVER >= 0x0150
//@@@- V1.5
//@@@+ V2.0
#if( OLEDBVER >= 0x0200 )
enum DBTYPEENUM20
{ DBTYPE_FILETIME = 64,
#ifdef __BORLANDC__ /* This was removed by MS for some reason */
DBTYPE_DBFILETIME = 137,
#endif
DBTYPE_PROPVARIANT = 138,
DBTYPE_VARNUMERIC = 139
};
#endif // OLEDBVER >= 0x0200
//@@@- V2.0
typedef DWORD DBPART;
enum DBPARTENUM
{ DBPART_INVALID = 0,
DBPART_VALUE = 0x1,
DBPART_LENGTH = 0x2,
DBPART_STATUS = 0x4
};
typedef DWORD DBPARAMIO;
enum DBPARAMIOENUM
{ DBPARAMIO_NOTPARAM = 0,
DBPARAMIO_INPUT = 0x1,
DBPARAMIO_OUTPUT = 0x2
};
//@@@+ V1.5
#if( OLEDBVER >= 0x0150 )
typedef DWORD DBBINDFLAG;
enum DBBINDFLAGENUM
{ DBBINDFLAG_HTML = 0x1
};
#endif // OLEDBVER >= 0x0150
//@@@- V1.5
typedef DWORD DBMEMOWNER;
enum DBMEMOWNERENUM
{ DBMEMOWNER_CLIENTOWNED = 0,
DBMEMOWNER_PROVIDEROWNED = 0x1
};
typedef struct tagDBOBJECT
{
DWORD dwFlags;
IID iid;
} DBOBJECT;
typedef DWORD DBSTATUS;
enum DBSTATUSENUM
{ DBSTATUS_S_OK = 0,
DBSTATUS_E_BADACCESSOR = 1,
DBSTATUS_E_CANTCONVERTVALUE = 2,
DBSTATUS_S_ISNULL = 3,
DBSTATUS_S_TRUNCATED = 4,
DBSTATUS_E_SIGNMISMATCH = 5,
DBSTATUS_E_DATAOVERFLOW = 6,
DBSTATUS_E_CANTCREATE = 7,
DBSTATUS_E_UNAVAILABLE = 8,
DBSTATUS_E_PERMISSIONDENIED = 9,
DBSTATUS_E_INTEGRITYVIOLATION = 10,
DBSTATUS_E_SCHEMAVIOLATION = 11,
DBSTATUS_E_BADSTATUS = 12,
DBSTATUS_S_DEFAULT = 13
};
//@@@+ V2.0
#if( OLEDBVER >= 0x0200 )
enum DBSTATUSENUM20
{ MDSTATUS_S_CELLEMPTY = 14,
DBSTATUS_S_IGNORE = 15
};
#endif // OLEDBVER >= 0x0200
//@@@- V2.0
//@@@+ V2.1
#if( OLEDBVER >= 0x0210 )
enum DBSTATUSENUM21
{ DBSTATUS_E_DOESNOTEXIST = 16,
DBSTATUS_E_INVALIDURL = 17,
DBSTATUS_E_RESOURCELOCKED = 18,
DBSTATUS_E_RESOURCEEXISTS = 19,
DBSTATUS_E_CANNOTCOMPLETE = 20,
DBSTATUS_E_VOLUMENOTFOUND = 21,
DBSTATUS_E_OUTOFSPACE = 22,
DBSTATUS_S_CANNOTDELETESOURCE = 23,
DBSTATUS_E_READONLY = 24,
DBSTATUS_E_RESOURCEOUTOFSCOPE = 25,
DBSTATUS_S_ALREADYEXISTS = 26
};
typedef DWORD DBBINDURLFLAG;
enum DBBINDURLFLAGENUM
{ DBBINDURLFLAG_READ = 0x1L,
DBBINDURLFLAG_WRITE = 0x2L,
DBBINDURLFLAG_READWRITE = 0x3L,
DBBINDURLFLAG_SHARE_DENY_READ = 0x4L,
DBBINDURLFLAG_SHARE_DENY_WRITE = 0x8L,
DBBINDURLFLAG_SHARE_EXCLUSIVE = 0xcL,
DBBINDURLFLAG_SHARE_DENY_NONE = 0x10L,
DBBINDURLFLAG_ASYNCHRONOUS = 0x1000L,
DBBINDURLFLAG_COLLECTION = 0x2000L,
DBBINDURLFLAG_DELAYFETCHSTREAM = 0x4000L,
DBBINDURLFLAG_DELAYFETCHCOLUMNS = 0x8000L,
DBBINDURLFLAG_RECURSIVE = 0x400000L,
DBBINDURLFLAG_OUTPUT = 0x800000L,
DBBINDURLFLAG_WAITFORINIT = 0x1000000L,
DBBINDURLFLAG_OPENIFEXISTS = 0x2000000L,
DBBINDURLFLAG_OVERWRITE = 0x4000000L,
DBBINDURLFLAG_ISSTRUCTUREDDOCUMENT = 0x8000000L
};
typedef DWORD DBBINDURLSTATUS;
enum DBBINDURLSTATUSENUM
{ DBBINDURLSTATUS_S_OK = 0L,
DBBINDURLSTATUS_S_DENYNOTSUPPORTED = 0x1L,
DBBINDURLSTATUS_S_DENYTYPENOTSUPPORTED = 0x4L,
DBBINDURLSTATUS_S_REDIRECTED = 0x8L
};
#endif // OLEDBVER >= 0x0210
//@@@- V2.1
//@@@+ V2.5
#if( OLEDBVER >= 0x0250 )
enum DBSTATUSENUM25
{ DBSTATUS_E_CANCELED = 27,
DBSTATUS_E_NOTCOLLECTION = 28
};
#endif // OLEDBVER >= 0x0250
//@@@- V2.5
typedef struct tagDBBINDEXT
{
/* [size_is] */ BYTE __RPC_FAR *pExtension;
DBCOUNTITEM ulExtension;
} DBBINDEXT;
typedef struct tagDBBINDING
{
DBORDINAL iOrdinal;
DBBYTEOFFSET obValue;
DBBYTEOFFSET obLength;
DBBYTEOFFSET obStatus;
ITypeInfo __RPC_FAR *pTypeInfo;
DBOBJECT __RPC_FAR *pObject;
DBBINDEXT __RPC_FAR *pBindExt;
DBPART dwPart;
DBMEMOWNER dwMemOwner;
DBPARAMIO eParamIO;
DBLENGTH cbMaxLen;
DWORD dwFlags;
DBTYPE wType;
BYTE bPrecision;
BYTE bScale;
} DBBINDING;
typedef DWORD DBROWSTATUS;
enum DBROWSTATUSENUM
{ DBROWSTATUS_S_OK = 0,
DBROWSTATUS_S_MULTIPLECHANGES = 2,
DBROWSTATUS_S_PENDINGCHANGES = 3,
DBROWSTATUS_E_CANCELED = 4,
DBROWSTATUS_E_CANTRELEASE = 6,
DBROWSTATUS_E_CONCURRENCYVIOLATION = 7,
DBROWSTATUS_E_DELETED = 8,
DBROWSTATUS_E_PENDINGINSERT = 9,
DBROWSTATUS_E_NEWLYINSERTED = 10,
DBROWSTATUS_E_INTEGRITYVIOLATION = 11,
DBROWSTATUS_E_INVALID = 12,
DBROWSTATUS_E_MAXPENDCHANGESEXCEEDED = 13,
DBROWSTATUS_E_OBJECTOPEN = 14,
DBROWSTATUS_E_OUTOFMEMORY = 15,
DBROWSTATUS_E_PERMISSIONDENIED = 16,
DBROWSTATUS_E_LIMITREACHED = 17,
DBROWSTATUS_E_SCHEMAVIOLATION = 18,
DBROWSTATUS_E_FAIL = 19
};
//@@@+ V2.0
#if( OLEDBVER >= 0x0200 )
enum DBROWSTATUSENUM20
{ DBROWSTATUS_S_NOCHANGE = 20
};
#endif // OLEDBVER >= 0x0200
//@@@- V2.0
typedef ULONG_PTR HACCESSOR;
#define DB_NULL_HACCESSOR 0x00 // deprecated; use DB_INVALID_HACCESSOR instead
#define DB_INVALID_HACCESSOR 0x00
typedef ULONG_PTR HROW;
#define DB_NULL_HROW 0x00
typedef ULONG_PTR HWATCHREGION;
#define DBWATCHREGION_NULL NULL
typedef ULONG_PTR HCHAPTER;
#define DB_NULL_HCHAPTER 0x00
#define DB_INVALID_HCHAPTER 0x00 // deprecated; use DB_NULL_HCHAPTER instead
typedef struct tagDBFAILUREINFO
{
HROW hRow;
DBORDINAL iColumn;
HRESULT failure;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -