OLE DB Structures and Enumerated Types

Type

Defined in

Used in

typedef DWORD DBACCESSORFLAGS;
enum DBACCESSORFLAGSENUM {
     DBACCESSOR_INVALID,
     DBACCESSOR_PASSBYREF,
     DBACCESSOR_ROWDATA,
     DBACCESSOR_PARAMETERDATA,
     DBACCESSOR_OPTIMIZED,
     DBACCESSOR_INHERITED
};

IAccessor::CreateAccessor

IAccessor::CreateAccessor

IAccessor::GetBindings

typedef struct tagDBBINDEXT {
     BYTE         *pExtension;
     DBCOUNTITEM   ulExtension;
} DBBINDEXT;

DBBINDING Structures

DBBINDING

typedef struct tagDBBINDING {
     DBORDINAL      iOrdinal;
     DBBYTEOFFSET   obValue;
     DBBYTEOFFSET   obLength;
     DBBYTEOFFSET   obStatus;
     ITypeInfo     *pTypeInfo;
     DBOBJECT      *pObject;
     DBBINDEXT     *pBindExt;
     DBPART         dwPart;
     DBMEMOWNER     dwMemOwner;
     DBPARAMIO      eParamIO;
     DBLENGTH       cbMaxLen;
     DWORD          dwFlags;
     DBTYPE         wType;
     BYTE           bPrecision;
     BYTE           bScale;
} DBBINDING;

DBBINDING Structures

IAccessor::CreateAccessor

IAccessor::GetBindings

typedef DWORD DBBINDFLAG;
enum DBBINDFLAGENUM {
     DBBINDFLAG_HTML
};

A possible value of dwFlags as defined in DBBINDING Structures

IAccessor::CreateAccessor

typedef DWORD DBBINDSTATUS;
enum DBBINDSTATUSENUM {
     DBBINDSTATUS_OK
     DBBINDSTATUS_BADORDINAL
DBBINDSTATUS_UNSUPPORTEDCONVERSION
     DBBINDSTATUS_BADBINDINFO
     DBBINDSTATUS_BADSTORAGEFLAGS
     DBBINDSTATUS_NOINTERFACE
};

IAccessor::CreateAccessor

IAccessor::CreateAccessor

typedef DWORD DBBINDURLFLAG;
enum DBBINDURLFLAGENUM {
     DBBINDURLFLAG_READ,
     DBBINDURLFLAG_WRITE,
     DBBINDURLFLAG_READWRITE,
     DBBINDURLFLAG_SHARE_DENY_READ,
     DBBINDURLFLAG_SHARE_DENY_WRITE,
     DBBINDURLFLAG_SHARE_EXCLUSIVE,
     DBBINDURLFLAG_SHARE_DENY_NONE,
     DBBINDURLFLAG_ASYNCHRONOUS,
     DBBINDURLFLAG_COLLECTION,
     DBBINDURLFLAG_DELAYFETCHSTREAM,
     DBBINDURLFLAG_DELAYFETCHCOLUMNS,
     DBBINDURLFLAG_RECURSIVE,
     DBBINDURLFLAG_OUTPUT,
     DBBINDURLFLAG_WAITFORINIT,
     DBBINDURLFLAG_OPENIFEXISTS,
     DBBINDURLFLAG_OVERWRITE,
     DBBINDURLFLAG_ISSTRUCTUREDDOCUMENT
};

IBindResource::Bind

IBindResource::Bind

typedef DWORD DBBINDURLSTATUS;
enum DBBINDURLSTATUSENUM {
     DBBINDURLSTATUS_S_OK,
     DBBINDURLSTATUS_S_DENYNOTSUPPORTED,
     DBBINDURLSTATUS_S_DENYTYPENOTSUPPORTED,
     DBBINDURLSTATUS_S_REDIRECTED    };

IBindResource::Bind

IBindResource::Bind

typedef enum tagDBBOOKMARK {
     DBBMK_INVALID,
     DBBMK_FIRST,
     DBBMK_LAST
} DBBOOKMARK;

Standard Bookmarks

typedef struct tagDBCOLUMNACCESS {
     void          *pData;
     DBID           columnid;
     DBLENGTH       cbDataLen;
     DBSTATUS       dwStatus;
     DBLENGTH       cbMaxLen;
     DB_DWRESERVE   dwReserved;
     DBTYPE         wType;
     BYTE           bPrecision;
     BYTE           bScale;
} DBCOLUMNACCESS;

IRow::GetColumns

IRow::GetColumns

typedef struct tagDBCOLUMNDESC {
     LPOLESTR     pwszTypeName;
     ITypeInfo   *pTypeInfo;
     DBPROPSET   *rgPropertySets;
     CLSID       *pclsid;
     ULONG        cPropertySets;
     DBLENGTH     ulColumnSize;
     DBID         dbcid;
     DBTYPE       wType;
     BYTE         bPrecision;
     BYTE         bScale;
} DBCOLUMNDESC;

ITableDefinition::CreateTable

ITableDefinition::AddColumn

ITableDefinition::CreateTable

typedef DWORD DBCOLUMNFLAGS;
enum DBCOLUMNFLAGSENUM {
     DBCOLUMNFLAGS_ISBOOKMARK,
     DBCOLUMNFLAGS_MAYDEFER,
     DBCOLUMNFLAGS_WRITE,
     DBCOLUMNFLAGS_WRITEUNKNOWN,
     DBCOLUMNFLAGS_ISFIXEDLENGTH,
     DBCOLUMNFLAGS_ISNULLABLE,
     DBCOLUMNFLAGS_MAYBENULL,
     DBCOLUMNFLAGS_ISLONG,
     DBCOLUMNFLAGS_ISROWID,
     DBCOLUMNFLAGS_ISROWVER,
     DBCOLUMNFLAGS_CACHEDEFERRED,
     DBCOLUMNFLAGS_SCALEISNEGATIVE,
     DBCOLUMNFLAGS_RESERVED,
     DBCOLUMNFLAGS_ISROWURL,
     DBCOLUMNFLAGS_ISDEFAULTSTREAM,
     DBCOLUMNFLAGS_ISCOLLECTION,
     DBCOLUMNFLAGS_ISSTREAM,
     DBCOLUMNFLAGS_ISROWSET,
     DBCOLUMNFLAGS_ISROW,
     DBCOLUMNFLAGS_ROWSPECIFICCOLUMN
};

IColumnsInfo::GetColumnInfo

DBCOLUMNINFO

typedef struct tagDBCOLUMNINFO {
     LPOLESTR        pwszName;
     ITypeInfo      *pTypeInfo;
     DBORDINAL       iOrdinal;
     DBCOLUMNFLAGS   dwFlags;
     DBLENGTH        ulColumnSize;
     DBTYPE          wType;
     BYTE            bPrecision;
     BYTE            bScale;
     DBID            columnid;
} DBCOLUMNINFO;

IColumnsInfo::GetColumnInfo

IColumnsInfo::GetColumnInfo

typedef DWORD DBCOMPARE;
enum DBCOMPAREENUM {
     DBCOMPARE_LT,
     DBCOMPARE_EQ,
     DBCOMPARE_GT,
     DBCOMPARE_NE,
     DBCOMPARE_NOTCOMPARABLE
};

IRowsetLocate::Compare

IRowsetLocate::Compare

typedef DWORD DBCOMPAREOP;
enum DBCOMPAREOPSENUM
{   DBCOMPAREOPS_LT   = 0,
   DBCOMPAREOPS_LE   = 1,
   DBCOMPAREOPS_EQ   = 2,
   DBCOMPAREOPS_GE   = 3,
   DBCOMPAREOPS_GT   = 4,
   DBCOMPAREOPS_BEGINSWITH   = 5,
   DBCOMPAREOPS_CONTAINS   = 6,
   DBCOMPAREOPS_NE   = 7,
   DBCOMPAREOPS_IGNORE   = 8,
   DBCOMPAREOPS_CASESENSITIVE   = 0x1000,
   DBCOMPAREOPS_CASEINSENSITIVE   = 0x2000
}; 

IRowsetFind::FindNextRow

IRowsetFind::FindNextRow

IViewFilter::GetFilter

IViewFilter::SetFilter

typedef struct tagDBCONSTRAINTDESC {
     DBID       *pConstraintID;
     DBCONSTRAINTTYPE ConstraintType;
     DBORDINAL   cColumns;
     DBID        rgColumnList[];
     DBID       *pReferencedTableID;
     DBORDINAL   cForeignKeyColumns;
     DBID        rgForeignKeyColumnList[];
     OLECHAR    *pwszConstraintText;
     DBUPDELRULE UpdateRule;
     DBUPDELRULE DeleteRule;
     DBMATCHTYPE MatchType;
     DBDEFERRABILITY Deferrability;
     DB_URESERVE cReserved;
     DBPROPSET   rgReserved[];
} DBCONSTRAINTDESC;

ITableDefinitionWithConstraints::AddConstraint

ITableDefinitionWithConstraints::AddConstraint

typedef DWORD DBCONVERTFLAGS;
enum DBCONVERTFLAGSENUM {
     DBCONVERTFLAGS_COLUMN,
     DBCONVERTFLAGS_PARAMETER,
     DBCONVERTFLAGS_FROMVARIANT,
     DBCONVERTFLAGS_ISFIXEDLENGTH,
     DBCONVERTFLAGS_ISLONG
};

IConvertType::CanConvert

IConvertType::CanConvert

typedef DWORD DBCOPYFLAGS;
enum DBCOPYFLAGSENUM {
     DBCOPY_ASYNC,
     DBCOPY_REPLACE_EXISTING,
     DBCOPY_ALLOW_EMULATION,
     DBCOPY_NON_RECURSIVE,
     DBCOPY_ATOMIC
};

IScopedOperations::Copy

IScopedOperations::Copy

typedef struct tagDBDATE {
     SHORT  year;
     USHORT month;
     USHORT day;
} DBDATE;

Type Indicators in Appendix A: Data Types

typedef DWORD DBDELETEFLAGS;
enum DBDELETEFLAGSENUM {
     DBDELETE_ASYNC,
     DBDELETE_ATOMIC
};

IScopedOperations::Delete

IScopedOperations::Delete

typedef DWORD DBEVENTPHASE;
enum DBEVENTPHASEENUM {
     DBEVENTPHASE_OKTODO,
     DBEVENTPHASE_ABOUTTODO,
     DBEVENTPHASE_SYNCHAFTER,
     DBEVENTPHASE_FAILEDTODO,
     DBEVENTPHASE_DIDEVENT
};

IRowsetNotify

IRowsetNotify::OnFieldChange

IRowsetNotify::OnRowChange

IRowsetNotify::OnRowsetChange

typedef struct tagDBID {
     union {
     GUID guid;
     GUID * pguid;
     } uGuid;
     DBKIND eKind;
     union {
     LPOLESTR pwszName;
     ULONG    ulPropid;
     } uName;
} DBID;

Column IDs

DBCOLUMNDESC

DBCOLUMNINFO

DBINDEXCOLUMNDESC

DBPROP

IColumnsInfo::MapColumnIDs

IColumnsRowset::GetAvailableColumns

IColumnsRowset::GetColumnsRowset

IIndexDefinition::CreateIndex

IIndexDefinition::DropIndex

IOpenRowset::OpenRowset

ITableDefinition::AddColumn

ITableDefinition::CreateTable

ITableDefinition::DropColumn

ITableDefinition::DropTable

typedef struct tagDBIMPLICITSESSION {
     IUnknown *   pUnkOuter;
     IID * piid;
     IUnknown *   pSession;
} DBIMPLICITSESSION;

IBindResource::Bind

IBindResource::Bind

typedef DWORD DBINDEX_COL_ORDER;
enum DBINDEX_COL_ORDERENUM {
     DBINDEX_COL_ORDER_ASC,
     DBINDEX_COL_ORDER_DESC
};

IIndexDefinition::CreateIndex

DBINDEXCOLUMNDESC

typedef struct tagDBINDEXCOLUMNDESC {
     DBID * pColumnID;
     DBINDEX_COL_ORDER eIndexColOrder;
} DBINDEXCOLUMNDESC;

IIndexDefinition::CreateIndex

IIndexDefinition::CreateIndex

IRowsetIndex::GetIndexInfo

typedef DWORD DBKIND;
enum DBKINDENUM {
     DBKIND_GUID_NAME,
     DBKIND_GUID_PROPID,
     DBKIND_NAME,
     DBKIND_PGUID_NAME,
     DBKIND_PGUID_PROPID,
     DBKIND_PROPID,
     DBKIND_GUID
};

Column IDs

DBID

typedef DWORD DBLITERAL;
enum DBLITERALENUM {
     DBLITERAL_INVALID,
     DBLITERAL_BINARY_LITERAL,
     DBLITERAL_CATALOG_NAME,
     DBLITERAL_CATALOG_SEPARATOR,
     DBLITERAL_CHAR_LITERAL,
     DBLITERAL_COLUMN_ALIAS,
     DBLITERAL_COLUMN_NAME,
     DBLITERAL_CORRELATION_NAME,
     DBLITERAL_CURSOR_NAME,
     DBLITERAL_ESCAPE_PERCENT,
     DBLITERAL_ESCAPE_UNDERSCORE,
     DBLITERAL_INDEX_NAME,
     DBLITERAL_LIKE_PERCENT,
     DBLITERAL_LIKE_UNDERSCORE,
     DBLITERAL_PROCEDURE_NAME,
     DBLITERAL_QUOTE,
     DBLITERAL_SCHEMA_NAME,
     DBLITERAL_TABLE_NAME,
     DBLITERAL_TEXT_COMMAND,
     DBLITERAL_USER_NAME,
     DBLITERAL_VIEW_NAME,
     DBLITERAL_CUBE_NAME,
     DBLITERAL_DIMENSION_NAME,
     DBLITERAL_HIERARCHY_NAME,
     DBLITERAL_LEVEL_NAME,
     DBLITERAL_MEMBER_NAME,
     DBLITERAL_PROPERTY_NAME,
     DBLITERAL_SCHEMA_SEPARATOR,
     DBLITERAL_QUOTE_SUFFIX,
     DBLITERAL_ESCAPE_PERCENT_SUFFIX,
     DBLITERAL_ESCAPE_UNDERSCORE_SUFFIX
};

IDBInfo::GetLiteralInfo

IDBInfo::GetLiteralInfo

typedef DWORD DBMEMOWNER;
enum DBMEMOWNERENUM {
     DBMEMOWNER_CLIENTOWNED,
     DBMEMOWNER_PROVIDEROWNED
};

DBBINDING Structures

DBBINDING

typedef DWORD DBMOVEFLAGS;
enum DBMOVEFLAGSENUM {
     DBMOVE_REPLACE_EXISTING,
     DBMOVE_ASYNC,
     DBMOVE_DONT_UPDATE_LINKS,
     DBMOVE_ALLOW_EMULATION,
     DBMOVE_ATOMIC
};

IScopedOperations::Move

IScopedOperations::Move

typedef struct tagDB_NUMERIC {
     BYTE precision;
     BYTE scale;
     BYTE sign;
     BYTE val[16];
} DB_NUMERIC;

Type Indicators in Appendix A: Data Types

typedef struct tagDB_VARNUMERIC {
     BYTE precision;
     SBYTE scale;
     BYTE sign;
     BYTE val[1];
} DB_VARNUMERIC;

Type Indicators in Appendix A: Data Types

typedef struct tagDBOBJECT {
     DWORD dwFlags;
     IID iid;
} DBOBJECT;

DBBINDING Structures

DBBINDING

typedef struct tagDBPARAMBINDINFO {
     LPOLESTR pwszDataSourceType;
     LPOLESTR     pwszName;
     DBLENGTH     ulParamSize;
     DBPARAMFLAGS dwFlags;
     BYTE         bPrecision;
     BYTE         bScale;
} DBPARAMBINDINFO;

ICommandWithParameters::SetParameterInfo

ICommandWithParameters::SetParameterInfo

typedef DWORD DBPARAMFLAGS;
enum DBPARAMFLAGSENUM {
     DBPARAMFLAGS_ISINPUT,
     DBPARAMFLAGS_ISOUTPUT,
     DBPARAMFLAGS_ISSIGNED,
     DBPARAMFLAGS_ISNULLABLE,
     DBPARAMFLAGS_ISLONG,
     DBPARAMFLAGS_SCALEISNEGATIVE
};

ICommandWithParameters::GetParameterInfo

DBPARAMBINDINFO DBPARAMINFO

typedef struct tagDBPARAMINFO {
     DBPARAMFLAGS dwFlags;
     DBORDINAL    iOrdinal;
     LPOLESTR     pwszName;
     ITypeInfo   *pTypeInfo;
     DBLENGTH     ulParamSize;
     DBTYPE       wType;
     BYTE         bPrecision;
     BYTE         bScale;
} DBPARAMINFO;

ICommandWithParameters::GetParameterInfo

ICommandWithParameters::GetParameterInfo

typedef DWORD DBPARAMIO;
enum DBPARAMIOENUM {
     DBPARAMIO_NOTPARAM,
     DBPARAMIO_INPUT,
     DBPARAMIO_OUTPUT
};

DBBINDING Structures

DBBINDING

typedef struct tagDBPARAMS {
     void        *pData;
     DB_UPARAMS   cParamSets;
     HACCESSOR    hAccessor;
} DBPARAMS;

ICommand::Execute

ICommand::Execute

typedef DWORD DBPART;
enum DBPARTENUM {
     DBPART_INVALID,
     DBPART_VALUE,
     DBPART_LENGTH,
     DBPART_STATUS
};

DBBINDING Structures

DBBINDING

typedef DWORD DBPENDINGSTATUS;
enum DBPENDINGSTATUSENUM {
     DBPENDINGSTATUS_NEW,
     DBPENDINGSTATUS_CHANGED,
     DBPENDINGSTATUS_DELETED,
     DBPENDINGSTATUS_UNCHANGED,
     DBPENDINGSTATUS_INVALIDROW
};

Row States in Deferred Update Mode

IRowsetUpdate::GetPendingRows

IRowsetUpdate::GetRowStatus

typedef struct tagDBPROP {
     DBPROPID      dwPropertyID;
     DBPROPOPTIONS dwOptions;
     DBPROPSTATUS  dwStatus;
     DBID          colid;
     VARIANT       vValue;
} DBPROP;

DBPROP Structure

DBPROPSET

typedef DWORD DBPROPFLAGS;
enum DBPROPFLAGSENUM {
     DBPROPFLAGS_NOTSUPPORTED,
     DBPROPFLAGS_COLUMN,
     DBPROPFLAGS_DATASOURCE,
     DBPROPFLAGS_DATASOURCECREATE,
     DBPROPFLAGS_DATASOURCEINFO,
     DBPROPFLAGS_DBINIT,
     DBPROPFLAGS_INDEX,
     DBPROPFLAGS_ROWSET,
     DBPROPFLAGS_TABLE,
     DBPROPFLAGS_COLUMNOK,
     DBPROPFLAGS_READ,
     DBPROPFLAGS_WRITE,
     DBPROPFLAGS_REQUIRED,
     DBPROPFLAGS_SESSION,
     DBPROPFLAGS_TRUSTEE,
     DBPROPFLAGS_VIEW,
     DBPROPFLAGS_STREAM
};

DBPROPFLAGS Enumerated Type

DBPROPINFO

typedef struct tagDBPROPIDSET {
     DBPROPID * rgPropertyIDs;
     ULONG      cPropertyIDs;
     GUID       guidPropertySet;
} DBPROPIDSET;

DBPROPIDSET Structure

ICommandProperties::GetProperties

IDBDataSourceAdmin::GetCreationProperties

IDBProperties::GetProperties

IDBProperties::GetPropertyInfo

IRowsetInfo::GetProperties

ISessionProperties::GetProperties

typedef struct tagDBPROPINFO {
     LPOLESTR    pwszDescription;
     DBPROPID    dwPropertyID;
     DBPROPFLAGS dwFlags;
     VARTYPE     vtType;
     VARIANT     vValues;
} DBPROPINFO;

DBPROPINFO Structure

DBPROPINFOSET

typedef struct tagDBPROPINFOSET {
     DBPROPINFO * rgPropertyInfos;
     ULONG        cPropertyInfos;
     GUID         guidPropertySet;
} DBPROPINFOSET;

DBPROPINFOSET Structure

IDBDataSourceAdmin::GetCreationProperties

IDBProperties::GetPropertyInfo

typedef DWORD DBPROPOPTIONS;
enum DBPROPOPTIONSENUM {
     DBPROPOPTIONS_REQUIRED,
     DBPROPOPTIONS_OPTIONAL
};

DBPROPOPTIONS Enumerated Type

DBPROP

typedef struct tagDBPROPSET {
     DBPROP * rgProperties;
     ULONG    cProperties;
     GUID     guidPropertySet;
} DBPROPSET;

DBPROPSET Structure

DBCOLUMNDESC

IColumnsRowset::GetColumnsRowset

ICommandProperties::GetProperties

ICommandProperties::SetProperties

IDBDataSourceAdmin::CreateDataSource

IDBDataSourceAdmin::ModifyDataSource

IDBProperties::GetProperties

IDBProperties::SetProperties

IDBSchemaRowset::GetRowset

IIndexDefinition::CreateIndex

IOpenRowset::OpenRowset

IRowsetIndex::GetIndexInfo

IRowsetInfo::GetProperties

ISessionProperties::GetProperties

ISessionProperties::SetProperties

ISourcesRowset::GetSourcesRowset

ITableDefinition::CreateTable

typedef DWORD DBPROPSTATUS;
enum DBPROPSTATUSENUM {
     DBPROPSTATUS_OK,
     DBPROPSTATUS_NOTSUPPORTED,
     DBPROPSTATUS_BADVALUE,
     DBPROPSTATUS_BADOPTION,
     DBPROPSTATUS_BADCOLUMN,
     DBPROPSTATUS_NOTALLSETTABLE,
     DBPROPSTATUS_NOTSETTABLE,
     DBPROPSTATUS_NOTSET,
     DBPROPSTATUS_CONFLICTING,
     DBPROPSTATUS_NOTAVAILABLE
};

DBPROPSTATUS Enumerated Type

DBPROP

typedef DWORD DBRANGE;
enum DBRANGEENUM {
     DBRANGE_INCLUSIVESTART,
     DBRANGE_INCLUSIVEEND,
     DBRANGE_EXCLUSIVESTART,
     DBRANGE_EXCLUSIVEEND,
     DBRANGE_EXCLUDENULLS,
     DBRANGE_PREFIX,
     DBRANGE_MATCH
};

IRowsetIndex::SetRange

IRowsetIndex::SetRange

typedef DWORD DBREASON;
enum DBREASONENUM {
     DBREASON_ROWSET_FETCHPOSITIONCHANGE,
     DBREASON_ROWSET_RELEASE,
     DBREASON_COLUMN_SET,
     DBREASON_COLUMN_RECALCULATED,
     DBREASON_ROW_ACTIVATE,
     DBREASON_ROW_RELEASE,
     DBREASON_ROW_DELETE,
     DBREASON_ROW_FIRSTCHANGE,
     DBREASON_ROW_INSERT,
     DBREASON_ROW_RESYNCH,
     DBREASON_ROW_UNDOCHANGE,
     DBREASON_ROW_UNDOINSERT,
     DBREASON_ROW_UNDODELETE,
     DBREASON_ROW_UPDATE,
     DBREASON_ROWSET_CHANGED,
     DBREASON_ROWPOSITION_CHANGED,
     DBREASON_ROWPOSITION_CHAPTERCHANGED,
     DBREASON_ROWPOSITION_CLEARED,
     DBREASON_ROW_ASYNCHINSERT
};

IRowsetNotify

IRowsetNotify::OnFieldChange

IRowsetNotify::OnRowChange

IRowsetNotify::OnRowsetChange

typedef DWORD DBROWSTATUS;
enum DBROWSTATUSENUM {
     DBROWSTATUS_S_OK,
     DBROWSTATUS_S_MULTIPLECHANGES,
     DBROWSTATUS_S_PENDINGCHANGES,
     DBROWSTATUS_S_ROWSETCOLUMN,
     DBROWSTATUS_S_NOCHANGE,
     DBROWSTATUS_E_CANCELED,
     DBROWSTATUS_E_CANTRELEASE,
     DBROWSTATUS_E_CONCURRENCYVIOLATION,
     DBROWSTATUS_E_DELETED,
     DBROWSTATUS_E_PENDINGINSERT,
     DBROWSTATUS_E_NEWLYINSERTED,
     DBROWSTATUS_E_INTEGRITYVIOLATION,
     DBROWSTATUS_E_INVALID,
     DBROWSTATUS_E_MAXPENDCHANGESEXCEEDED,
     DBROWSTATUS_E_OBJECTOPEN,
     DBROWSTATUS_E_OUTOFMEMORY,
     DBROWSTATUS_E_PERMISSIONDENIED,
     DBROWSTATUS_E_LIMITREACHED,
     DBROWSTATUS_E_SCHEMAVIOLATION,
     DBROWSTATUS_E_FAIL
};

IRowset::AddRefRows

IRowset::ReleaseRows

IRowsetChange::DeleteRows

IRowsetLocate::GetRowsByBookmark

IRowsetLocate::Hash

IRowsetRefresh::RefreshVisibleData

IRowsetUpdate::Undo

IRowsetUpdate::Update

typedef DWORD DBSEEK;
enum DBSEEKENUM {
     DBSEEK_INVALID,
     DBSEEK_FIRSTEQ,
     DBSEEK_LASTEQ,
     DBSEEK_GE,
     DBSEEK_GT,
     DBSEEK_LE,
     DBSEEK_LT
};

IRowsetIndex::Seek

IRowsetIndex::Seek

typedef DWORD DBSORT;
enum DBSORTENUM {
     DBSORT_ASCENDING = 0,
     DBSORT_DESCENDING
};

IViewSort::SetSortOrder

IViewSort::SetSortOrder

typedef DWORD DBSOURCETYPE;
enum DBSOURCETYPEENUM {
     DBSOURCETYPE_BINDER,
     DBSOURCETYPE_DATASOURCE_MDP,
     DBSOURCETYPE_DATASOURCE_TDP,
     DBSOURCETYPE_ENUMERATOR
};

Enumerated values as shown here or in Oledb.h

ISourcesRowset::GetSourcesRowset

typedef DWORD DBSTATUS;
enum DBSTATUSENUM {
     DBSTATUS_S_OK,
     DBSTATUS_E_BADACCESSOR,
     DBSTATUS_E_CANTCONVERTVALUE,
     DBSTATUS_S_ISNULL,
     DBSTATUS_S_TRUNCATED,
     DBSTATUS_E_SIGNMISMATCH,
     DBSTATUS_E_DATAOVERFLOW,
     DBSTATUS_E_CANTCREATE,
     DBSTATUS_E_UNAVAILABLE,
     DBSTATUS_E_PERMISSIONDENIED,
     DBSTATUS_E_INTEGRITYVIOLATION,
     DBSTATUS_E_SCHEMAVIOLATION,
     DBSTATUS_E_BADSTATUS,
     DBSTATUS_S_DEFAULT,
     MDSTATUS_S_CELLEMPTY,
     DBSTATUS_S_IGNORE,
     DBSTATUS_E_DOESNOTEXIST,
     DBSTATUS_E_INVALIDURL,
     DBSTATUS_E_RESOURCELOCKED,
     DBSTATUS_E_RESOURCEEXISTS,
     DBSTATUS_E_CANNOTCOMPLETE,
     DBSTATUS_E_VOLUMENOTFOUND,
     DBSTATUS_E_OUTOFSPACE,
     DBSTATUS_S_CANNOTDELETESOURCE,
     DBSTATUS_E_READONLY,
     DBSTATUS_E_RESOURCEOUTOFSCOPE,
     DBSTATUS_S_ALREADYEXISTS,
     DBSTATUS_E_CANCELED,
     DBSTATUS_E_NOTCOLLECTION,
     DBSTATUS_S_ROWSETCOLUMN
     };

Status

enum DBTABLESTATISTICSTYPE {
     DBSTAT_HISTOGRAM,
     DBSTAT_COLUMN_CARDINALITY,
     DBSTAT_TUPLE_CARDINALITY
     };

TABLE_STATISTICS Rowset in Appendix B: Schema Rowsets

typedef struct tagDBTIME {
     USHORT hour;
     USHORT minute;
     USHORT second;
} DBTIME;

Type Indicators in Appendix A: Data Types

typedef struct tagDBTIMESTAMP {
     SHORT  year;
     USHORT month;
     USHORT day;
     USHORT hour;
     USHORT minute;
     USHORT second;
     ULONG  fraction;
} DBTIMESTAMP;

Type Indicators in Appendix A: Data Types

typedef WORD DBTYPE;
enum DBTYPEENUM {
     DBTYPE_EMPTY,
     DBTYPE_NULL,
     DBTYPE_I2,
     DBTYPE_I4,
     DBTYPE_R4,
     DBTYPE_R8,
     DBTYPE_CY,
     DBTYPE_DATE,
     DBTYPE_BSTR,
     DBTYPE_IDISPATCH,
     DBTYPE_ERROR,
     DBTYPE_BOOL,
     DBTYPE_VARIANT,
     DBTYPE_IUNKNOWN,
     DBTYPE_DECIMAL,
     DBTYPE_UI1,
     DBTYPE_ARRAY,
     DBTYPE_BYREF,
     DBTYPE_I1,
     DBTYPE_UI2,
     DBTYPE_UI4,
     DBTYPE_I8,
     DBTYPE_UI8,
     DBTYPE_GUID,
     DBTYPE_VECTOR,
     DBTYPE_RESERVED,
     DBTYPE_BYTES,
     DBTYPE_STR,
     DBTYPE_WSTR,
     DBTYPE_NUMERIC,
     DBTYPE_UDT,
     DBTYPE_DBDATE,
     DBTYPE_DBTIME,
     DBTYPE_DBTIMESTAMP,
     DBTYPE_FILETIME,
     DBTYPE_HCHAPTER,
     DBTYPE_PROPVARIANT,
     DBTYPE_VARNUMERIC
};

Type Indicators in Appendix A: Data Types

DBBINDING

DBCOLUMNINFO

DBPARAMINFO

DBCOLUMNDESC

IConvertType::CanConvert

typedef struct tagDBVECTOR {
     DBLENGTH   size;
     void      *ptr;
} DBVECTOR;

Type Indicators in Appendix A: Data Types

typedef struct tagDEC {
     USHORT wReserved;
     union {
          struct {
               BYTE scale;
               BYTE sign;
          };
          USHORT signscale;
     };
     ULONG Hi32;
     union {
          struct {
               ULONG Lo32;
               ULONG Mid32;
          };
          ULONGLONG Lo64;
     };
} DECIMAL;

Type Indicators in Appendix A: Data Types

typedef struct tagERRORINFO {
     HRESULT hrError;
     DWORD   dwMinor;
     CLSID   clsid;
     IID     iid;
     DISPID  dispid;
} ERRORINFO;

Error Records

IErrorRecords::AddErrorRecord

IErrorRecords::GetBasicErrorInfo

typedef struct XACTTRANSINFO {
     XACTUOW  uow;
     ISOLEVEL isoLevel;
     ULONG    isoFlags;
     DWORD    grfTCSupported;
     DWORD    grfRMSupported;
     DWORD    grfTCSupportedRetaining;
     DWORD    grfRMSupportedRetaining;
} XACTTRANSINFO;

ITransaction::GetTransactionInfo

ITransaction::GetTransactionInfo

typedef struct XACTOPT {
     ULONG ulTimeout;
     unsigned char
     szDescription[MAX_TRAN_DESC];
} XACTOPT

ITransactionOptions::SetOptions

ITransactionOptions::GetOptions

ITransactionOptions::SetOptions