📄 ocdb.h
字号:
{
DBCOLUMNBINDOPTS_REPLACE = 0,
DBCOLUMNBINDOPTS_ADD = 1
}
DBCOLUMNBINDOPTS;
typedef enum tagDBUPDATELOCK
{
DBUPDATELOCK_PESSIMISTIC = 0,
DBUPDATELOCK_OPTIMISTIC = 1
}
DBUPDATELOCK;
typedef enum tagDBCOLUMNDATA
{
DBCOLUMNDATA_UNCHANGED = 0,
DBCOLUMNDATA_CHANGED = 1,
DBCOLUMNDATA_UNKNOWN = 2
}
DBCOLUMNDATA;
typedef enum tagDBROWACTION
{
DBROWACTION_IGNORE = 0,
DBROWACTION_UPDATE = 1,
DBROWACTION_DELETE = 2,
DBROWACTION_ADD = 3,
DBROWACTION_LOCK = 4,
DBROWACTION_UNLOCK = 5
}
DBROWACTION;
typedef enum tagDBUPDATEABLE
{
DBUPDATEABLE_UPDATEABLE = 0,
DBUPDATEABLE_NOTUPDATEABLE = 1,
DBUPDATEABLE_UNKNOWN = 2
}
DBUPDATEABLE;
#ifdef OLD_DEFS
typedef struct tagDBROWSTATUS
{
HRESULT hrStatus;
BLOB Bookmark;
}
DBROWSTATUS;
#endif
typedef enum tagDBEVENTWHATS
{
DBEVENT_CURRENT_ROW_CHANGED = 1,
DBEVENT_CURRENT_ROW_DATA_CHANGED = 2,
DBEVENT_NONCURRENT_ROW_DATA_CHANGED = 4,
DBEVENT_SET_OF_COLUMNS_CHANGED = 8,
DBEVENT_ORDER_OF_COLUMNS_CHANGED = 16,
DBEVENT_SET_OF_ROWS_CHANGED = 32,
DBEVENT_ORDER_OF_ROWS_CHANGED = 64,
DBEVENT_METADATA_CHANGED = 128,
DBEVENT_ASYNCH_OP_FINISHED = 256,
DBEVENT_FIND_CRITERIA_CHANGED = 512,
}
DBEVENTWHATS;
typedef enum tagDBREASON
{
DBREASON_DELETED = 1,
DBREASON_INSERTED = 2,
DBREASON_MODIFIED = 3,
DBREASON_REMOVEDFROMCURSOR = 4,
DBREASON_MOVEDINCURSOR = 5,
DBREASON_MOVE = 6,
DBREASON_FIND = 7,
DBREASON_NEWINDEX = 8,
DBREASON_ROWFIXUP = 9,
DBREASON_RECALC = 10,
DBREASON_REFRESH = 11,
DBREASON_NEWPARAMETERS = 12,
DBREASON_SORTCHANGED = 13,
DBREASON_FILTERCHANGED = 14,
DBREASON_QUERYSPECCHANGED = 15,
DBREASON_SEEK = 16,
DBREASON_PERCENT = 17,
DBREASON_FINDCRITERIACHANGED = 18,
DBREASON_SETRANGECHANGED = 19,
DBREASON_ADDNEW = 20,
DBREASON_MOVEPERCENT = 21,
DBREASON_BEGINTRANSACT = 22,
DBREASON_ROLLBACK = 23,
DBREASON_COMMIT = 24,
DBREASON_CLOSE = 25,
DBREASON_BULK_ERROR = 26,
DBREASON_BULK_NOTTRANSACTABLE = 27,
DBREASON_BULK_ABOUTTOEXECUTE = 28,
DBREASON_CANCELUPDATE = 29,
DBREASON_SETCOLUMN = 30,
DBREASON_EDIT = 31,
DBREASON_UNLOAD = 32
}
#ifdef OLD_DEFS
DBREASON
#else
_DBREASON;
#endif
// Arg1 values for DBREASON_FIND
typedef enum tagDBFINDTYPES
{
DB_FINDFIRST = 1,
DB_FINDLAST = 2,
DB_FINDNEXT = 3,
DB_FINDPRIOR = 4,
DB_FIND = 5
}
DBFINDTYPES;
typedef struct tagDBNOTIFYREASON
{
DWORD dwReason;
DBVARIANT arg1;
DBVARIANT arg2;
}
DBNOTIFYREASON;
#define DB_E_BADBINDINFO MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e00)
#define DB_E_BADBOOKMARK MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e01)
#define DB_E_BADCOLUMNID MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e02)
#define DB_E_BADCRITERIA MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e03)
#define DB_E_BADENTRYID MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e04)
#define DB_E_BADFRACTION MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e05)
#define DB_E_BADINDEXID MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e06)
#define DB_E_BADQUERYSPEC MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e07)
#define DB_E_BADSORTORDER MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e08)
#define DB_E_BADVALUES MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e09)
#define DB_E_CANTCOERCE MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e0a)
#define DB_E_CANTLOCK MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e0b)
#define DB_E_COLUMNUNAVAILABLE MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e0c)
#define DB_E_DATACHANGED MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e0d)
#define DB_E_INVALIDCOLUMNORDINAL MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e0e)
#define DB_E_INVALIDINTERFACE MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e0f)
#define DB_E_LOCKFAILED MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e10)
#define DB_E_ROWDELETED MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e11)
#define DB_E_ROWTOOSHORT MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e12)
#define DB_E_SCHEMAVIOLATION MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e13)
#define DB_E_SEEKKINDNOTSUPPORTED MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e14)
#define DB_E_UPDATEINPROGRESS MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e15)
#define DB_E_USEENTRYID MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e16)
#define DB_E_STATEERROR MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e17)
#define DB_E_BADFETCHINFO MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e18)
#define DB_E_NOASYNC MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e19)
#define DB_E_ENTRYIDOPEN MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e1a)
#define DB_E_BUFFERTOOSMALL MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0e1b)
#define DB_S_BUFFERTOOSMALL MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0ec0)
#define DB_S_CANCEL MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0ec1)
#define DB_S_DATACHANGED MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0ec2)
#define DB_S_ENDOFCURSOR MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0ec3)
#define DB_S_ENDOFRESULTSET MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0ec4)
#define DB_S_OPERATIONCANCELLED MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0ec5)
#define DB_S_QUERYINTERFACE MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0ec6)
#define DB_S_WORKINGASYNC MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0ec7)
//#define DB_S_COULDNTCOERCE MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0ec8)
#define DB_S_MOVEDTOFIRST MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0ec9)
#define DB_S_CURRENTROWUNCHANGED MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0eca)
#define DB_S_ROWADDED MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0ecb)
#define DB_S_ROWUPDATED MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0ecc)
#define DB_S_ROWDELETED MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0ecd)
/*----------------------------------------------------------------------------
*
* ICursor
*
*----------------------------------------------------------------------------
*/
/* Forward declaration */
//typedef interface ICursor ICursor;
#if defined(__cplusplus) && !defined(CINTERFACE)
/* C++ Language Binding */
//extern "C" const IID IID_ICursor;
interface ICursor : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetColumnsCursor
(
REFIID riid,
IUnknown **ppvColumnsCursor,
ULONG *pcRows
) = 0;
virtual HRESULT STDMETHODCALLTYPE SetBindings
(
ULONG cCol,
DBCOLUMNBINDING rgBoundColumns[],
ULONG cbRowLength,
DWORD dwFlags
) = 0;
virtual HRESULT STDMETHODCALLTYPE GetBindings
(
ULONG *pcCol,
DBCOLUMNBINDING *prgBoundColumns[],
ULONG *pcbRowLength
) = 0;
virtual HRESULT STDMETHODCALLTYPE GetNextRows
(
LARGE_INTEGER udlRowsToSkip,
DBFETCHROWS *pFetchParams
) = 0;
virtual HRESULT STDMETHODCALLTYPE Requery
(
void
) = 0;
};
#else
/* C Language Binding */
//extern const IID IID_ICursor;
typedef struct ICursorVtbl
{
HRESULT (STDMETHODCALLTYPE FAR *QueryInterface)
(
ICursor FAR *this,
REFIID riid,
void **ppvObject
);
ULONG (STDMETHODCALLTYPE FAR *AddRef)
(
ICursor FAR *this
);
ULONG (STDMETHODCALLTYPE FAR *Release)
(
ICursor FAR *this
);
HRESULT (STDMETHODCALLTYPE FAR *GetColumnsCursor)
(
ICursor FAR *this,
REFIID riid,
IUnknown **ppvColumnsCursor,
ULONG *pcRows
);
HRESULT (STDMETHODCALLTYPE FAR *SetBindings)
(
ICursor FAR *this,
ULONG cCol,
DBCOLUMNBINDING rgBoundColumns[],
ULONG cbRowLength,
DWORD dwFlags
);
HRESULT (STDMETHODCALLTYPE FAR *GetBindings)
(
ICursor FAR *this,
ULONG *pcCol,
DBCOLUMNBINDING *prgBoundColumns[],
ULONG *pcbRowLength
);
HRESULT (STDMETHODCALLTYPE FAR *GetNextRows)
(
ICursor FAR *this,
LARGE_INTEGER udlRowsToSkip,
DBFETCHROWS *pFetchParams
);
HRESULT (STDMETHODCALLTYPE FAR *Requery)
(
ICursor FAR *this
);
} ICursorVtbl;
interface ICursor
{
ICursorVtbl FAR *lpVtbl;
} ;
#ifdef COBJMACROS
#define ICursor_QueryInterface(pI, riid, ppvObject) \
(*(pI)->lpVtbl->QueryInterface)((pI), riid, ppvObject)
#define ICursor_AddRef(pI) \
(*(pI)->lpVtbl->AddRef)((pI))
#define ICursor_Release(pI) \
(*(pI)->lpVtbl->Release)((pI))
#define ICursor_GetColumnsCursor(pI, riid, ppvColumnsCursor, pcRows) \
(*(pI)->lpVtbl->GetColumnsCursor)((pI), riid, ppvColumnsCursor, pcRows)
#define ICursor_SetBindings(pI, cCol, rgBoundColumns, cbRowLength, dwFlags) \
(*(pI)->lpVtbl->SetBindings)((pI), cCol, rgBoundColumns, cbRowLength, dwFlags)
#define ICursor_GetBindings(pI, pcCol, prgBoundColumns, pcbRowLength) \
(*(pI)->lpVtbl->GetBindings)((pI), pcCol, prgBoundColumns, pcbRowLength)
#define ICursor_GetNextRows(pI, udlRowsToSkip, pFetchParams) \
(*(pI)->lpVtbl->GetNextRows)((pI), udlRowsToSkip, pFetchParams)
#define ICursor_Requery(pI) \
(*(pI)->lpVtbl->Requery)((pI))
#endif /* COBJMACROS */
#endif
/*----------------------------------------------------------------------------
*
* ICursorMove
*
*----------------------------------------------------------------------------
*/
/* Forward declaration */
//typedef interface ICursorMove ICursorMove;
typedef enum tagDBCLONEOPTS
{
DBCLONEOPTS_DEFAULT = 0,
DBCLONEOPTS_SAMEROW = 1
}
DBCLONEOPTS;
#if defined(__cplusplus) && !defined(CINTERFACE)
/* C++ Language Binding */
//extern "C" const IID IID_ICursorMove;
interface ICursorMove : public ICursor
{
public:
virtual HRESULT STDMETHODCALLTYPE Move
(
ULONG cbBookmark,
void *pBookmark,
LARGE_INTEGER dlOffset,
DBFETCHROWS *pFetchParams
) = 0;
virtual HRESULT STDMETHODCALLTYPE GetBookmark
(
DBCOLUMNID *pBookmarkType,
ULONG cbMaxSize,
ULONG *pcbBookmark,
void *pBookmark
) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone
(
DWORD dwFlags,
REFIID riid,
IUnknown **ppvClonedCursor
) = 0;
};
#else
/* C Language Binding */
//extern const IID IID_ICursorMove;
typedef struct ICursorMoveVtbl
{
HRESULT (STDMETHODCALLTYPE FAR *QueryInterface)
(
ICursorMove FAR *this,
REFIID riid,
void **ppvObject
);
ULONG (STDMETHODCALLTYPE FAR *AddRef)
(
ICursorMove FAR *this
);
ULONG (STDMETHODCALLTYPE FAR *Release)
(
ICursorMove FAR *this
);
HRESULT (STDMETHODCALLTYPE FAR *GetColumnsCursor)
(
ICursorMove FAR *this,
REFIID riid,
IUnknown **ppvColumnsCursor,
ULONG *pcRows
);
HRESULT (STDMETHODCALLTYPE FAR *SetBindings)
(
ICursorMove FAR *this,
ULONG cCol,
DBCOLUMNBINDING rgBoundColumns[],
ULONG cbRowLength,
DWORD dwFlags
);
HRESULT (STDMETHODCALLTYPE FAR *GetBindings)
(
ICursorMove FAR *this,
ULONG *pcCol,
DBCOLUMNBINDING *prgBoundColumns[],
ULONG *pcbRowLength
);
HRESULT (STDMETHODCALLTYPE FAR *GetNextRows)
(
ICursorMove FAR *this,
LARGE_INTEGER udlRowsToSkip,
DBFETCHROWS *pFetchParams
);
HRESULT (STDMETHODCALLTYPE FAR *Requery)
(
ICursorMove FAR *this
);
HRESULT (STDMETHODCALLTYPE FAR *Move)
(
ICursorMove FAR *this,
ULONG cbBookmark,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -