Home COM GDI+ WebBrowser Data Access

OLEDB Interfaces

 

 

This section contains syntax and semantic information for the OLE DB interfaces.

 

Documentation: OLEDB Reference

 

 

 

Microsoft OLE DB is a set of interfaces that expose data from a variety of relational and nonrelational sources by using the Component Object Model (COM). OLE DB interfaces provide applications with uniform access to data stored in diverse information sources. These interfaces support the amount of DBMS functionality appropriate to the data store, enabling the data store to share its data.

 

OLE DB comprises a programmatic model consisting of data providers, which contain and expose data; data consumers, which use data; and service components, which process and transport data (such as query processors and cursor engines). In addition, OLE DB includes a bridge to ODBC to enable continued support for the broad range of ODBC relational database drivers.

 

ADO is an ActiveX control that provides an easy-to-use intertface to OLE DB, i.e. ADO is a wrapper on top of OLE DB.

 

With the PB compilers you can use the OLE DB interfaces directly. This means less overhead and better performance than using ADO. However, as it happens with low-level interfaces (and also with the cumbersome Windows' APIs), they are much harder to use.

 

One interesting technique is to mix the usage of ADO and OLE DB. My library of wrappers for ADO, TB_ADO28, provides access to the ADOCommandConstruction, ADOConnectionConstruction, ADORecordsetConstruction, ADORecordConstruction and ADOStreamConstruction interfaces, and these interfaces provide methods to access to the underlying OLE DB interfaces. The examples at the end of this page shows how to do it.

 

 

Interfaces

 

IAccessor

IADOSecurity

IAlterIndex

IAlterTable

IBindResource

IChapteredRowset

IColumnsInfo

IColumnsInfo2

IColumnsRowset

ICommand

ICommandPersist

ICommandPrepare

ICommandProperties

ICommandStream

ICommandText

ICommandWithParameters

IConvertType

ICreateRow

IDataSourceLocator

IDBAsynchNotify

IDBAsynchStatus

IDBBinderProperties

IDBCreateCommand

IDBCreateSession

IDBDataSourceAdmin

IDBInfo

IDBInitialize

IDBProperties

IDBSchemaRowset

IErrorInfo

IErrorLookup

IErrorRecords

IGetDataSource

IGetRow

IGetSession

IGetSourceRow

IIndexDefinition

IMultipleResults

IOpenRowset

 

 

IParentRowset

IRegisterProvider

IRow

IRowChange

IRowSchemaChange

IRowset

IRowsetBookmark

IRowsetChange

IRowsetChapterMember

IRowsetCurrentIndex

IRowsetFind

IRowsetIdentity

IRowsetIndex

IRowsetInfo

IRowsetLocate

IRowsetNotify

IRowsetRefresh

IRowsetResynch

IRowsetScroll

IRowsetUpdate

IRowsetView

IScopedOperations

ISequentialStream

ISessionProperties

ISourcesRowset

ISQLErrorInfo

ISupportErrorInfo

ITableCreation

ITableDefinition

ITableDefinitionWithConstraints

ITransaction

ITransactionJoin

ITransactionLocal

ITransactionObject

ITransactionOptions

IViewChapter

IViewFilter

IViewRowset

IViewSort

 

 

OLEDB Core Components Interfaces

 

IDataInitialize

 

 

IDBPromptInitialize

 

Data Type Conversion Interfaces

 

This appendix describes data type conversion interfaces in OLE DB. For information about data types, see Appendix A: Data Types. For information about how consumers and providers use data types, see Chapter 13: Data Types in OLE DB.

  • Possible data type conversions are described in the section Data Conversion Library.

  • Data type conversion interfaces are described in the sections IDataConvert and IDCInfo.

 

IDataConvert

 

 

IDCInfo

 

Row Position Object

 

This appendix describes OLE DB interfaces that manipulate a Row Position object, which embodies the concept of a current row in a rowset.

  • The IRowPosition interface manages the Row Position object.

  • The IRowPositionChange interface enables a consumer to be notified when the current row position changes.

 

IRowPosition

 

 

IRowPositionChange

 

Identifiers

 

 

$CLSID_EXTENDEDERRORINFO = GUID$("{C8B522CF-5CF3-11CE-ADE5-00AA0044773D}")
$CLSID_MSDASQL = GUID$("{C8B522CB-5CF3-11CE-ADE5-00AA0044773D}")
$CLSID_MSDAVTM = GUID$("{0C733A8E-2A1C-11CE-ADE5-00AA0044773D}")
$CLSID_OLEDB_CONVERSIONLIBRARY = GUID$("{C8B522D1-5CF3-11CE-ADE5-00AA0044773D}")
$CLSID_OLEDB_ENUMERATOR = GUID$("{C8B522D0-5CF3-11CE-ADE5-00AA0044773D}")
$CLSID_OLEDB_ROWPOSITIONLIBRARY = GUID$("{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}")
$CLSID_OLEDB_SVC_DSLPropertyPages = GUID$("{51740C02-7E8E-11D2-A02D-00C04FA37348}")
 
$IID_IAccessor = GUID$("{0C733A8C-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IAlterIndex = GUID$("{0C733AA6-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IAlterTable = GUID$("{0C733AA5-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IChapteredRowset = GUID$("{0C733A93-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IColumnsInfo = GUID$("{0C733A11-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IColumnsRowset = GUID$("{0C733A10-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommand = GUID$("{0C733A63-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommandPersist = GUID$("{0C733AA7-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommandPrepare = GUID$("{0C733A26-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommandProperties = GUID$("{0C733A79-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommandStream = GUID$("{0C733ABF-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommandText = GUID$("{0C733A27-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommandTree = GUID$("{0C733A87-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommandWithParameters = GUID$("{0C733A64-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IConvertType = GUID$("{0C733A88-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICreateRow = GUID$("{0C733AB2-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDataConvert = GUID$("{0C733A8D-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDataInitialize = GUID$("{2206CCB1-19C1-11D1-89E0-00C04FD7A829}")
$IID_IDBAsynchNotify = GUID$("{0C733A96-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBAsynchStatus = GUID$("{0C733A95-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBBinderProperties = GUID$("{0C733AB3-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBCreateCommand = GUID$("{0C733A1D-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBCreateSession = GUID$("{0C733A5D-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBDataSourceAdmin = GUID$("{0C733A7A-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBInfo = GUID$("{0C733A89-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBInitialize = GUID$("{0C733A8B-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBPromptInitialize = GUID$("{2206CCB0-19C1-11D1-89E0-00C04FD7A829}")
$IID_IDBProperties = GUID$("{0C733A8A-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBSchemaRowset = GUID$("{0C733A7B-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDCInfo = GUID$("{0C733A9C-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IErrorInfo = GUID$("{1CF2B120-547D-101B-8E65-08002B2BD119}")
$IID_IErrorLookup = GUID$("{0C733A66-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IErrorRecords = GUID$("{0C733A67-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IGetDataSource = GUID$("{0C733A75-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IGetRow = GUID$("{0C733AAF-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IGetSession = GUID$("{0C733ABA-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IGetSourceRow = GUID$("{0C733ABB-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IIndexDefinition = GUID$("{0C733A68-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IMDDataset = GUID$("{A07CCCD1-8148-11D0-87BB-00C04FC33942}")
$IID_IMDFind = GUID$("{A07CCCD2-8148-11D0-87BB-00C04FC33942}")
$IID_IMDRangeRowset = GUID$("{0C733AA0-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IMultipleResults = GUID$("{0C733A90-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IOpenRowset = GUID$("{0C733A69-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IParentRowset = GUID$("{0C733AAA-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IQuery = GUID$("{0C733A51-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IReadData = GUID$("{0C733A6A-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowPosition = GUID$("{0C733A94-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowPositionChange = GUID$("{0997A571-126E-11D0-9F8A-00A0C9A0631E}")
$IID_IRowset = GUID$("{0C733A7C-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetBookmark = GUID$("{0C733AC2-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetChange = GUID$("{0C733A05-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetChapterMember = GUID$("{0C733AA8-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetCurrentIndex = GUID$("{0C733ABD-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetFind = GUID$("{0C733A9D-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetIdentity = GUID$("{0C733A09-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetIndex = GUID$("{0C733A82-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetInfo = GUID$("{0C733A55-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetLocate = GUID$("{0C733A7D-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetNotify = GUID$("{0C733A83-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetRefresh = GUID$("{0C733AA9-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetResynch = GUID$("{0C733A84-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetScroll = GUID$("{0C733A7E-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetUpdate = GUID$("{0C733A6D-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetView = GUID$("{0C733A99-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IScoopedOperations = GUID$("{0C733AB0-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ISequentialStream = GUID$("{0C733A30-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ISessionProperties = GUID$("{0C733A85-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ISourcesRowset = GUID$("{0C733A1E-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ISQLErrorInfo = GUID$("{0C733A74-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ISupportErrorInfo = GUID$("{DF0B3D60-548F-101B-8E65-08002B2BD119}")
$IID_ITableCreation = GUID$("{0C733ABC-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ITableDefinition = GUID$("{0C733A86-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ITableDefinitionWithConstraints = GUID$("{0C733AAB-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ITransaction = GUID$("{0FB15084-AF41-11CE-BD2B-204C4F4F5020}")
$IID_ITransactionJoin = GUID$("{0C733A5E-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ITransactionLocal = GUID$("{0C733A5F-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ITransactionObject = GUID$("{0C733A60-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ITransactionOptions = GUID$("{3A6AD9E0-23B9-11CF-AD60-00AA00A74CCD}")
$IID_IViewChapter = GUID$("{0C733A98-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IViewFilter = GUID$("{0C733A9B-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IViewRowset = GUID$("{0C733A97-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IViewSort = GUID$("{0C733A9A-2A1C-11CE-ADE5-00AA0044773D}")
 

 

OLEDBGUID.H

 

 

$DBCIDGUID = GUID$("{0C733A81-2A1C-11CE-ADE5-00AA0044773D}")
$DB_NULLGUID = GUID$("{00000000-0000-0000-0000-000000000000}")
 
$MDSCHEMA_FUNCTIONS = GUID$("{A07CCD07-8148-11D0-87BB-00C04FC33942}")
$MDSCHEMA_ACTIONS = GUID$("{A07CCD08-8148-11D0-87BB-00C04FC33942}")
$MDSCHEMA_COMMANDS = GUID$("{A07CCD09-8148-11D0-87BB-00C04FC33942}")
$MDSCHEMA_SETS = GUID$("{A07CCD0B-8148-11D0-87BB-00C04FC33942}")
$DBSCHEMA_TABLES_INFO = GUID$("{C8B522E0-5CF3-11CE-ADE5-00AA0044773D}")
$MDGUID_MDX = GUID$("{A07CCCD0-8148-11D0-87BB-00C04FC33942}")
$DBGUID_MDX = GUID$("{A07CCCD0-8148-11D0-87BB-00C04FC33942}")
$MDSCHEMA_CUBES = GUID$("{C8B522D8-5CF3-11CE-ADE5-00AA0044773D}")
$MDSCHEMA_DIMENSIONS = GUID$("{C8B522D9-5CF3-11CE-ADE5-00AA0044773D}")
$MDSCHEMA_HIERARCHIES = GUID$("{C8B522DA-5CF3-11CE-ADE5-00AA0044773D}")
$MDSCHEMA_LEVELS = GUID$("{C8B522DB-5CF3-11CE-ADE5-00AA0044773D}")
$MDSCHEMA_MEASURES = GUID$("{C8B522DC-5CF3-11CE-ADE5-00AA0044773D}")
$MDSCHEMA_PROPERTIES = GUID$("{C8B522DD-5CF3-11CE-ADE5-00AA0044773D}")
$MDSCHEMA_MEMBERS = GUID$("{C8B522DE-5CF3-11CE-ADE5-00AA0044773D}")
 
$DBGUID_ROWURL = GUID$("{0C733AB6-2A1C-11CE-ADE5-00AA0044773D}")
$DBGUID_ROWDEFAULTSTREAM = GUID$("{0C733AB7-2A1C-11CE-ADE5-00AA0044773D}")
$DBPROPSET_TRUSTEE = GUID$("{C8B522E1-5CF3-11CE-ADE5-00AA0044773D}")
$DBOBJECT_TABLE = GUID$("{C8B522E2-5CF3-11CE-ADE5-00AA0044773D}")
$DBOBJECT_COLUMN = GUID$("{C8B522E4-5CF3-11CE-ADE5-00AA0044773D}")
$DBOBJECT_DATABASE = GUID$("{C8B522E5-5CF3-11CE-ADE5-00AA0044773D}")
$DBOBJECT_PROCEDURE = GUID$("{C8B522E6-5CF3-11CE-ADE5-00AA0044773D}")
$DBOBJECT_VIEW = GUID$("{C8B522E7-5CF3-11CE-ADE5-00AA0044773D}")
$DBOBJECT_SCHEMA = GUID$("{C8B522E8-5CF3-11CE-ADE5-00AA0044773D}")
$DBOBJECT_DOMAIN = GUID$("{C8B522E9-5CF3-11CE-ADE5-00AA0044773D}")
$DBOBJECT_COLLATION = GUID$("{C8B522EA-5CF3-11CE-ADE5-00AA0044773D}")
$DBOBJECT_TRUSTEE = GUID$("{C8B522EB-5CF3-11CE-ADE5-00AA0044773D}")
$DBOBJECT_SCHEMAROWSET = GUID$("{C8B522EC-5CF3-11CE-ADE5-00AA0044773D}")
$DBOBJECT_CHARACTERSET = GUID$("{C8B522ED-5CF3-11CE-ADE5-00AA0044773D}")
$DBOBJECT_TRANSLATION = GUID$("{C8B522EE-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_TRUSTEE = GUID$("{C8B522EF-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_COLUMNALL = GUID$("{C8B522F0-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_INDEXALL = GUID$("{C8B522F1-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_TABLEALL = GUID$("{C8B522F2-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_TRUSTEEALL = GUID$("{C8B522F3-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_CONSTRAINTALL = GUID$("{C8B522FA-5CF3-11CE-ADE5-00AA0044773D}")
$DBGUID_DSO = GUID$("{C8B522F4-5CF3-11CE-ADE5-00AA0044773D}")
$DBGUID_SESSION = GUID$("{C8B522F5-5CF3-11CE-ADE5-00AA0044773D}")
$DBGUID_ROWSET = GUID$("{C8B522F6-5CF3-11CE-ADE5-00AA0044773D}")
$DBGUID_ROW = GUID$("{C8B522F7-5CF3-11CE-ADE5-00AA0044773D}")
$DBGUID_COMMAND = GUID$("{C8B522F8-5CF3-11CE-ADE5-00AA0044773D}")
$DBGUID_STREAM = GUID$("{C8B522F9-5CF3-11CE-ADE5-00AA0044773D}")
 
$DBGUID_CONTAINEROBJECT = GUID$("{C8B522FB-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_ASSERTIONS = GUID$("{C8B52210-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_CATALOGS = GUID$("{C8B52211-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_CHARACTER_SETS = GUID$("{C8B52212-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_COLLATIONS = GUID$("{C8B52213-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_COLUMNS = GUID$("{C8B52214-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_CHECK_CONSTRAINTS = GUID$("{C8B52215-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_CONSTRAINT_COLUMN_USAGE = GUID$("{C8B52216-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_CONSTRAINT_TABLE_USAGE = GUID$("{C8B52217-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_KEY_COLUMN_USAGE = GUID$("{C8B52218-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_REFERENTIAL_CONSTRAINTS = GUID$("{C8B52219-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_TABLE_CONSTRAINTS = GUID$("{C8B5221A-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_COLUMN_DOMAIN_USAGE = GUID$("{C8B5221B-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_INDEXES = GUID$("{C8B5221E-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_COLUMN_PRIVILEGES = GUID$("{C8B52221-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_TABLE_PRIVILEGES = GUID$("{C8B52222-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_USAGE_PRIVILEGES = GUID$("{C8B52223-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_PROCEDURES = GUID$("{C8B52224-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_SCHEMATA = GUID$("{C8B52225-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_SQL_LANGUAGES = GUID$("{C8B52226-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_STATISTICS = GUID$("{C8B52227-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_TABLES = GUID$("{C8B52229-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_TRANSLATIONS = GUID$("{C8B5222A-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_PROVIDER_TYPES = GUID$("{C8B5222C-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_VIEWS = GUID$("{C8B5222D-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_VIEW_COLUMN_USAGE = GUID$("{C8B5222E-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_VIEW_TABLE_USAGE = GUID$("{C8B5222F-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_PROCEDURE_PARAMETERS = GUID$("{C8B522B8-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_FOREIGN_KEYS = GUID$("{C8B522C4-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_PRIMARY_KEYS = GUID$("{C8B522C5-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_PROCEDURE_COLUMNS = GUID$("{C8B522C9-5CF3-11CE-ADE5-00AA0044773D}")
$DBCOL_SELFCOLUMNS = GUID$("{C8B52231-5CF3-11CE-ADE5-00AA0044773D}")
$DBCOL_SPECIALCOL = GUID$("{C8B52232-5CF3-11CE-ADE5-00AA0044773D}")
$PSGUID_QUERY = GUID$("{49691C90-7E17-101A-A91C08002B2ECDA9}")
$DBPROPSET_COLUMN = GUID$("{C8B522B9-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_DATASOURCE = GUID$("{C8B522BA-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_DATASOURCEINFO = GUID$("{C8B522BB-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_DBINIT = GUID$("{C8B522BC-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_INDEX = GUID$("{C8B522BD-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_ROWSET = GUID$("{C8B522BE-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_TABLE = GUID$("{C8B522BF-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_DATASOURCEALL = GUID$("{C8B522C0-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_DATASOURCEINFOALL = GUID$("{C8B522C1-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_ROWSETALL = GUID$("{C8B522C2-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_SESSION = GUID$("{C8B522C6-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_SESSIONALL = GUID$("{C8B522C7-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_DBINITALL = GUID$("{C8B522CA-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_PROPERTIESINERROR = GUID$("{C8B522D4-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_VIEW = GUID$("{C8B522DF-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_VIEWALL = GUID$("{C8B522FC-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_STREAM = GUID$("{C8B522FD-5CF3-11CE-ADE5-00AA0044773D}")
$DBPROPSET_STREAMALL = GUID$("{C8B522FE-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_TABLE_STATISTICS = GUID$("{C8B522FF-5CF3-11CE-ADE5-00AA0044773D}")
$DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE = GUID$("{C8B52301-5CF3-11CE-ADE5-00AA0044773D}")
$DBGUID_HISTOGRAM_ROWSET = GUID$("{C8B52300-5CF3-11CE-ADE5-00AA0044773D}")
 
$DBGUID_DBSQL = GUID$("{C8B521FB-5CF3-11CE-ADE5-00AA0044773D}")
$DBGUID_DEFAULT = GUID$("{C8B521FB-5CF3-11CE-ADE5-00AA0044773D}")
$DBGUID_SQL = GUID$("{C8B522D7-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_CHECK_OPTION = GUID$("{C8B5220B-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_CONSTRAINT_CHECK_DEFERRED = GUID$("{C8B521F0-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_DROP_CASCADE = GUID$("{C8B521F3-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_UNIQUE = GUID$("{C8B521F5-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_ON_COMMIT_PRESERVE_ROWS = GUID$("{C8B52230-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_PRIMARY = GUID$("{C8B521FC-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_CLUSTERED = GUID$("{C8B521FF-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_NONCLUSTERED = GUID$("{C8B52200-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_BTREE = GUID$("{C8B52201-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_HASH = GUID$("{C8B52202-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_FILLFACTOR = GUID$("{C8B52203-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_INITIALSIZE = GUID$("{C8B52204-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_DISALLOWNULL = GUID$("{C8B52205-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_IGNORENULL = GUID$("{C8B52206-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_IGNOREANYNULL = GUID$("{C8B52207-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_SORTBOOKMARKS = GUID$("{C8B52208-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_AUTOMATICUPDATE = GUID$("{C8B52209-5CF3-11CE-ADE5-00AA0044773D}")
$DB_PROPERTY_EXPLICITUPDATE = GUID$("{C8B5220A-5CF3-11CE-ADE5-00AA0044773D}")
$DBGUID_LIKE_SQL = GUID$("{C8B521F6-5CF3-11CE-ADE5-00AA0044773D}")
$DBGUID_LIKE_DOS = GUID$("{C8B521F7-5CF3-11CE-ADE5-00AA0044773D}")
$DBGUID_LIKE_OFS = GUID$("{C8B521F8-5CF3-11CE-ADE5-00AA0044773D}")
$DBGUID_LIKE_MAPI = GUID$("{C8B521F9-5CF3-11CE-ADE5-00AA0044773D}")
 

 

Typedefs

 

 

MACRO ACCESS_MASK = DWORD
MACRO DB_LPARAMS = LONG
MACRO DB_UPARAMS = DWORD
MACRO DBACCESSORFLAGS = DWORD
MACRO DBASYNCHOP = DWORD
MACRO DBASYNCHPHASE = DWORD
MACRO DBBINDFLAG = DWORD
MACRO DBBINDSTATUS = DWORD
MACRO DBBYTEOFFSET = DWORD
MACRO DBCOLUMNDESCFLAGS = DWORD
MACRO DBCOLUMNFLAGS = DWORD
MACRO DBCOMMANDOP = WORD
MACRO DBCOMMANDPERSISTFLAG = DWORD
MACRO DBCOMMANDREUSE = DWORD
MACRO DBCOMPARE = DWORD
MACRO DBCOMPAREOP = DWORD
MACRO DBCONVERTFLAGS = DWORD
MACRO DBCOSTUNIT = DWORD
MACRO DBCOUNTITEM = DWORD
MACRO DBEVENTPHASE = DWORD
MACRO DBEXECLIMITS = DWORD
MACRO DBINDEX_COL_ORDER = DWORD
MACRO DBKIND = DWORD
MACRO DBLENGTH = DWORD
MACRO DBLITERAL = DWORD
MACRO DBMEMOWNER = DWORD
MACRO DBORDINAL = DWORD
MACRO DBPARAMFLAGS = DWORD
MACRO DBPARAMIO = DWORD
MACRO DBPART = DWORD
MACRO DBPENDINGSTATUS = DWORD
MACRO DBPOSITIONFLAGS = DWORD
MACRO DBPROPFLAGS = DWORD
MACRO DBPROPID = DWORD
MACRO DBPROPOPTIONS = DWORD
MACRO DBPROPSTATUS = DWORD
MACRO DBRANGE = DWORD
MACRO DBREASON = DWORD
MACRO DBREFCOUNT = DWORD
MACRO DBRESOURCEKIND = DWORD
MACRO DBROWCHANGEKIND = DWORD
MACRO DBROWCOUNT = LONG
MACRO DBROWOFFSET = LONG
MACRO DBROWOPTIONS = DWORD
MACRO DBROWSTATUS = DWORD
MACRO DBSEEK = DWORD
MACRO DBSORT = DWORD
MACRO DBSOURCETYPE = DWORD
MACRO DBSTATUS = DWORD
MACRO DBTYPE = WORD
MACRO DBWATCHNOTIFY = DWORD
MACRO DBWATCHMODE = DWORD
MACRO HACCESSOR = DWORD
MACRO HROW = DWORD
MACRO HWATCHREGION = DWORD
MACRO HCHAPTER = DWORD
MACRO HSOURCE = WORD

MACRO hyper = QUAD
MACRO MIDL_uhyper = QUAD

 

 

DBIDs

 

 

'DB_NULLID = {DB_NULLGUID, 0, (wchar_t*)0};
'DBCOLUMN_IDNAME = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)2};
'DBCOLUMN_NAME = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)3};
'DBCOLUMN_NUMBER = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)4};
'DBCOLUMN_TYPE = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)5};
'DBCOLUMN_PRECISION = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)7};
'DBCOLUMN_SCALE = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)8};
'DBCOLUMN_FLAGS = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)9};
'DBCOLUMN_BASECOLUMNNAME = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)10};
'DBCOLUMN_BASETABLENAME = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)11};
'DBCOLUMN_COLLATINGSEQUENCE = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)12};
'DBCOLUMN_COMPUTEMODE = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)13};
'DBCOLUMN_DEFAULTVALUE = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)14};
'DBCOLUMN_DOMAINNAME = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)15};
'DBCOLUMN_HASDEFAULT = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)16};
'DBCOLUMN_ISAUTOINCREMENT = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)17};
'DBCOLUMN_ISCASESENSITIVE = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)18};
'DBCOLUMN_ISSEARCHABLE = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)20};
'DBCOLUMN_ISUNIQUE = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)21};
'DBCOLUMN_BASECATALOGNAME = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)23};
'DBCOLUMN_BASESCHEMANAME = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)24};
'DBCOLUMN_GUID = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)29};
'DBCOLUMN_PROPID = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)30};
'DBCOLUMN_TYPEINFO = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)31};
'DBCOLUMN_DOMAINCATALOG = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)32};
'DBCOLUMN_DOMAINSCHEMA = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)33};
'DBCOLUMN_DATETIMEPRECISION = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)34};
'DBCOLUMN_NUMERICPRECISIONRADIX = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)35};
'DBCOLUMN_OCTETLENGTH = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)36};
'DBCOLUMN_COLUMNSIZE = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)37};
'DBCOLUMN_CLSID = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)38};
'DBCOLUMN_MAYSORT = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)39};


'DBCOLUMN_BASETABLEVERSION = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)40};
'DBCOLUMN_KEYCOLUMN = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)41};


'DBROWCOL_ROWURL = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)0};
'DBROWCOL_PARSENAME = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)2};
'DBROWCOL_PARENTNAME = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)3};
'DBROWCOL_ABSOLUTEPARSENAME = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)4};
'DBROWCOL_ISHIDDEN = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)5};
'DBROWCOL_ISREADONLY = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)6};
'DBROWCOL_CONTENTTYPE = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)7};
'DBROWCOL_CONTENTCLASS = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)8};
'DBROWCOL_CONTENTLANGUAGE = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)9};
'DBROWCOL_CREATIONTIME = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)10};
'DBROWCOL_LASTACCESSTIME = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)11};
'DBROWCOL_LASTWRITETIME = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)12};
'DBROWCOL_STREAMSIZE = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)13};
'DBROWCOL_ISCOLLECTION = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)14};
'DBROWCOL_ISSTRUCTUREDDOCUMENT = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)15};
'DBROWCOL_DEFAULTDOCUMENT = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)16};
'DBROWCOL_DISPLAYNAME = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)17};
'DBROWCOL_ISROOT = {DBGUID_ROWURL, DBKIND_GUID_PROPID, (wchar_t*)18};
'DBROWCOL_DEFAULTSTREAM = {DBGUID_ROWDEFAULTSTREAM, DBKIND_GUID_PROPID, (wchar_t*)0};

'DBCOLUMN_DERIVEDCOLUMNNAME = {DBCIDGUID, DBKIND_GUID_PROPID, (wchar_t*)43};

MACRO DB_NULLID = $DB_NULLGUID & MKDWD$(0) & MKDWD$(0)
MACRO DBCOLUMN_IDNAME = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(2)
MACRO DBCOLUMN_NAME = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(3)
MACRO DBCOLUMN_NUMBER = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(4)
MACRO DBCOLUMN_TYPE = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(5)
MACRO DBCOLUMN_PRECISION = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(7)
MACRO DBCOLUMN_SCALE = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(8)
MACRO DBCOLUMN_FLAGS = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(9)
MACRO DBCOLUMN_BASECOLUMNNAME = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(10)
MACRO DBCOLUMN_BASETABLENAME = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(11)
MACRO DBCOLUMN_COLLATINGSEQUENCE = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(12)
MACRO DBCOLUMN_COMPUTEMODE = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(13)
MACRO DBCOLUMN_DEFAULTVALUE = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(14)
MACRO DBCOLUMN_DOMAINNAME = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(15)
MACRO DBCOLUMN_HASDEFAULT = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(16)
MACRO DBCOLUMN_ISAUTOINCREMENT = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(17)
MACRO DBCOLUMN_ISCASESENSITIVE = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(18)
MACRO DBCOLUMN_ISSEARCHABLE = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(20)
MACRO DBCOLUMN_ISUNIQUE = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(21)
MACRO DBCOLUMN_BASECATALOGNAME = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(23)
MACRO DBCOLUMN_BASESCHEMANAME = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(24)
MACRO DBCOLUMN_GUID = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(29)
MACRO DBCOLUMN_PROPID = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(30)
MACRO DBCOLUMN_TYPEINFO = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(31)
MACRO DBCOLUMN_DOMAINCATALOG = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(32)
MACRO DBCOLUMN_DOMAINSCHEMA = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(33)
MACRO DBCOLUMN_DATETIMEPRECISION = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(34)
MACRO DBCOLUMN_NUMERICPRECISIONRADIX = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(35)
MACRO DBCOLUMN_OCTETLENGTH = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(36)
MACRO DBCOLUMN_COLUMNSIZE = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(37)
MACRO DBCOLUMN_CLSID = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(38)
MACRO DBCOLUMN_MAYSORT = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(39)
MACRO DBCOLUMN_BASETABLEVERSION = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(40)
MACRO DBCOLUMN_KEYCOLUMN = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(41)
MACRO DBCOLUMN_DERIVEDCOLUMNNAME = $DBCIDGUID & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(43)

MACRO DBROWCOL_ROWURL = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(0)
MACRO DBROWCOL_PARSENAME = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(2)
MACRO DBROWCOL_PARENTNAME = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(3)
MACRO DBROWCOL_ABSOLUTEPARSENAME = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(4)
MACRO DBROWCOL_ISHIDDEN = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(5)
MACRO DBROWCOL_ISREADONLY = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(6)
MACRO DBROWCOL_CONTENTTYPE = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(7)
MACRO DBROWCOL_CONTENTCLASS = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(8)
MACRO DBROWCOL_CONTENTLANGUAGE = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(9)
MACRO DBROWCOL_CREATIONTIME = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(10)
MACRO DBROWCOL_LASTACCESSTIME = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(11)
MACRO DBROWCOL_LASTWRITETIME = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(12)
MACRO DBROWCOL_STREAMSIZE = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(13)
MACRO DBROWCOL_ISCOLLECTION = $a & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(14)
MACRO DBROWCOL_ISSTRUCTUREDDOCUMENT = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(15)
MACRO DBROWCOL_DEFAULTDOCUMENT = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(16)
MACRO DBROWCOL_DISPLAYNAME = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(17)
MACRO DBROWCOL_ISROOT = $DBGUID_ROWURL & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(18)

MACRO DBROWCOL_DEFAULTSTREAM = $DBGUID_ROWDEFAULTSTREAM & MKDWD$(%DBKIND_GUID_PROPID) & MKDWD$(0)
 
Note: To use them, DIM a variable AS DBID and use TYPE SET, e.g.
DIM dbidName AS DBID : TYPE SET dbidName = DBCOLUMN_NAME
 

 

Structures

 

DBBINDEXT

 

TYPE DBBINDEXT

   pExtension AS BYTE PTR  

   ulExtension AS DWORD
END TYPE
 

 

DBBINDING

 

TYPE DBBINDING
   iOrdinal AS DWORD ' DBORDINAL
   obValue AS DWORD ' DBBYTEOFFSET
   obLength AS DWORD ' DBBYTEOFFSET
   obStatus AS DWORD ' DBBYTEOFFSET
   pTypeInfo AS DWORD ' ITypeInfo *
   pObject AS DBOBJECT PTR ' DBOBJECT *
   pBindExt AS DBBINDEXT PTR ' DBBINDEXT *
   dwPart AS DWORD ' DBPART
   dwMemOwner AS DWORD ' DBMEMOWNER
   eParamIO AS DWORD ' DBPARAMIO
   cbMaxLen AS DWORD ' DBLENGTH
   dwFlags AS DWORD ' DWORD
   wType AS WORD ' DBTYPE
   bPrecision AS BYTE
   bScale AS BYTE
END TYPE
 

 

DBCOLUMNDESC

 

TYPE DBCOLUMNDESC
   pwszTypeName AS DWORD
   pTypeInfo AS DWORD
   rgPropertySets AS DWORD
   pclsid AS DWORD
   cPropertySets AS DWORD
   ulColumnSize AS DWORD
   dbcid AS DBID
   wType AS WORD
   bPrecision AS BYTE
   bScale AS BYTE
END TYPE
 

 

DBCOLUMNINFO

 

TYPE DBCOLUMNINFO
   pwszName AS DWORD
   pTypeInfo AS DWORD
   iOrdinal AS DWORD
   dwFlags AS DWORD
   ulColumnSize AS DWORD
   wType AS WORD  ' DBTYPE
   bPrecision AS BYTE
   bScale AS BYTE
   columnid AS DBID
END TYPE
 

 

DBCOMMANDTREE

 

UNION DBCOMMANDTREE_VALUE_UNION
   fValue AS LONG ' BOOL // DBVALUEKIND_BOOL (DBTYPE_BOOL)
   uchValue AS BYTE ' unsigned char // DBVALUEKIND_UI1 (DBTYPE_UI1)
   schValue AS BYTE ' signed char // DBVALUEKIND_I1 (DBTYPE_I1)
   usValue AS WORD ' unsigned short // DBVALUEKIND_UI2 (DBTYPE_UI2)
   sValue AS INTEGER ' short // DBVALUEKIND_I2 (DBTYPE_I2)
   pwszValue AS DWORD ' LPOLESTR // DBVALUEKIND_WSTR (DBTYPE_WSTR)
   lValue AS LONG ' LONG // DBVALUEKIND_I4 (DBTYPE_I4)
   ulValue AS DWORD ' ULONG // DBVALUEKIND_UI4 (DBTYPE_UI4)
   flValue AS SINGLE ' float // DBVALUEKIND_R4 (DBTYPE_R4)
   dblValue AS DOUBLE ' double // DBVALUEKIND_R8 (DBTYPE_R8)
   cyValue AS CUR ' CY // DBVALUEKIND_CY (DBTYPE_CY)
   dateValue AS DOUBLE ' DATE // DBVALUEKIND_DATE (DBTYPE_DATE)
   dbdateValue AS DBDATE ' DBDATE // DBVALUEKIND_DBDATE (DBTYPE_DBDATE)
   dbtimeValue AS DBTIME ' DBTIME // DBVALUEKIND_DBTIME (DBTYPE_DBTIME)
   scodeValue AS LONG ' SCODE // DBVALUEKIND_ERROR (DBTYPE_ERROR)
   llValue AS QUAD ' __int64 // DBVALUEKIND_I8 (DBTYPE_I8)
   ullValue AS QUAD ' unsigned __int64 // DBVALUEKIND_UI8 (DBTYPE_UI8)
   pbstrValue AS STRING PTR ' BSTR * // DBVALUEKIND_BSTR (DBTYPE_BSTR)
   pCommand AS DWORD ' ICommand * // DBVALUEKIND_COMMAND (DBTYPE_IUNKNOWN)
   pDispatch AS DWORD ' IDispatch * // DBVALUEKIND_IDISPATCH (DBTYPE_IDISPATCH)
   pMoniker AS DWORD ' IMoniker * // DBVALUEKIND_MONIKER (DBTYPE_MONIKER)
   pRowset AS DWORD ' IRowset * // DBVALUEKIND_ROWSET (DBTYPE_ROWSET)
   pUnknown AS DWORD ' IUnknown * // DBVALUEKIND_IUNKNOWN (DBTYPE_IUNKNOWN)
   pdbbygdValue AS DBBYGUID PTR ' DBBYGUID * // DBVALUEKIND_BYGUID
   pcoldescValue AS DBCOLUMNDESC PTR ' DBCOLUMNDESC * // DBVALUEKIND_COLDESC
   pdbidValue AS DBID PTR ' DBID * // DBVALUEKIND_ID
   pdblikeValue AS DBLIKE PTR ' DBLIKE * // DBVALUEKIND_LIKE
   pdbcntntValue AS DBCONTENT PTR ' DBCONTENT * // DBVALUEKIND_CONTENT
   pdbcntntvcValue AS DBCONTENTVECTOR PTR ' DBCONTENTVECTOR * // DBVALUEKIND_CONTENTVECTOR
   pdbcntntproxValue AS DBCONTENTPROXIMITY PTR ' DBCONTENTPROXIMITY * // DBVALUEKIND_CONTENTPROXIMITY
   pdbgrpinfValue AS DBGROUPINFO PTR ' DBGROUPINFO * // DBVALUEKIND_GROUPINFO
   pdbparamValue AS DBPARAMETER PTR ' DBPARAMETER * // DBVALUEKIND_PARAMETER
   pdbpropValue AS DBPROPSET PTR ' DBPROPSET * // DBVALUEKIND_PROPERTY
   pdbstfncValue AS DBSETFUNC PTR ' DBSETFUNC * // DBVALUEKIND_SETFUNC
   pdbsrtinfValue AS DBSORTINFO PTR ' DBSORTINFO * // DBVALUEKIND_SORTINFO
   pdbtxtValue AS DBTEXT PTR ' DBTEXT * // DBVALUEKIND_TEXT
   pdbvectorValue AS DBVECTOR PTR ' DBVECTOR * // DBVALUEKIND_VECTOR | *
   parrayValue AS DWORD ' SAFEARRAY * // DBVALUEKIND_ARRAY | *
   pvarValue AS VARIANTAPI PTR ' VARIANT * // DBVALUEKIND_VARIANT (DBTYPE_VARIANT)
   pGuid AS GUID PTR ' GUID * // DBVALUEKIND_GUID (DBTYPE_GUID)
   pbValue AS BYTE PTR ' BYTE * // DBVALUEKIND_BYTES (DBTYPE_BYTES)
   pzValue AS ASCIIZ PTR ' CHAR * // DBVALUEKIND_STR (DBTYPE_STR)
   pdbnValue AS DB_NUMERIC PTR ' DB_NUMERIC * // DBVALUEKIND_NUMERIC (DBTYPE_NUMERIC)
   pdbtsValue AS DBTIMESTAMP PTR ' DBTIMESTAMP * // DBVALUEKIND_DBTIMESTAMP (DBTYPE_DBTIMESTAMP)
   pvValue AS DWORD PTR ' void * // a generic DBVALUEKIND_BYREF
END UNION

 

TYPE DBCOMMANDTREE
   op AS WORD ' // Operator identifier (2 bytes)
   wKind AS WORD ' // Discriminator for the following union (2 bytes)
   pctFirstChild AS DWORD ' // Pointer to first child (4 bytes)
   pctNextSibling AS DWORD ' // Pointer to sibling (4 bytes)
   value AS DBCOMMANDTREE_VALUE_UNION ' // Union directly represents fields that fit within 8 bytes.
   hrError AS DWORD ' // Error indicator, details in Extended Error info (4 bytes)
END TYPE
 

 

DBCONTENT

 

TYPE DBCONTENT
   pwszPhrase AS DWORD ' LPWSTR // text
   dwGenerateMethod AS DWORD ' DWORD // exact, prefix, stemmed
   lWeight AS LONG ' LONG // weight of node
   lcid AS LONG ' LCID // locale
END TYPE
 

 

DBCONTENTPROXIMITY

 

%PROXIMITY_UNIT_WORD = 0
%PROXIMITY_UNIT_SENTENCE = 1
%PROXIMITY_UNIT_PARAGRAPH = 2
%PROXIMITY_UNIT_CHAPTER = 3

 

TYPE DBCONTENTPROXIMITY
   dwProximityUnit AS DWORD ' DWORD // words, paras, chapters etc.
   ulProximityDistance AS DWORD ' ULONG // how near is "near"?
   lWeight AS LONG ' LONG // weight of the proximity node
END TYPE
 

 

DBCONTENTVECTOR

 

TYPE DBCONTENTVECTOR
  lWeight AS LONG ' LONG // node weight
  dwRankingMethod AS DWORD ' DWORD // jaccard, dice, etc.
END TYPE
 

 

DBCOST

 

TYPE DBCOST
   eKind AS DWORD

   dwUnits AS DWORD
   lValue AS LONG
END TYPE
 

 

DBDATE

 

TYPE DBDATE
   year AS INTEGER
   month AS WORD
   day AS WORD
END TYPE
 

 

DBFAILUREINFO

 

TYPE DBFAILUREINFO
   hRow AS DWORD
   iColumn AS DWORD
   failure AS DWORD
END TYPE
 

 

DBFILETIME

 

TYPE DBFILETIME
   dwLowDateTime AS DWORD
   dwHighDateTime AS DWORD
END TYPE
 

 

DBGROUPINFO

 

TYPE DBGROUPINFO
   lcid AS LONG ' LCID // local ID for text portion of query
END TYPE
 

 

DBID

 

UNION DBID_GUID_UNION
   rguid AS GUID
   pguid AS GUID PTR
END UNION

UNION DBID_NAME_UNION
   pwszName AS DWORD
   ulPropid AS DWORD
END UNION

TYPE DBID
   uGuid AS DBID_GUID_UNION

   eKind AS DWORD            ' // DBKIND Enum
   uName AS DBID_NAME_UNION

END TYPE
 

 

DBIMPLICITSESSION

 

TYPE DBIMPLICITSESSION
  
pUnkOuter AS DWORD
  
piid AS GUID PTR
  
pSession AS DWORD
END TYPE

 

 

DBINDENT

 

TYPE DBINDENT
   pExtension AS BYTE PTR
   ulExtension AS DWORD
END TYPE
 

 

DBINDEXCOLUMNDESC

 

TYPE DBINDEXCOLUMNDESC
   pColumnID AS DBID
   eIndexColOrder AS LONG
END TYPE
 

 

DBLIKE

 

TYPE DBLIKE
   lWeight AS LONG ' LONG // weight on the dbop_like node
   guidDialect AS GUID ' GUID // system to use for "likeness". E.g. Reg. Ex.
END TYPE
 

 

DBLIKE

 

TYPE DBLITERALINFO
   pwszLiteralValue AS DWORD
   pwszInvalidChars AS DWORD
   pwszInvalidStartingChars AS DWORD
   lt AS DWORD
   fSupported AS LONG
   cchMaxLen AS DWORD
END TYPE
 

 

DBNUMERIC

 

TYPE DB_NUMERIC
   precision AS BYTE
   scale AS BYTE
   sign AS BYTE
   value (0 TO 15) AS BYTE
END TYPE
 

 

DBOBJECT

 

TYPE DBOBJECT
   dwFlags AS DWORD
   iid AS LONG
END TYPE
 

 

DBPARAMBINDINFO

 

TYPE DBPARAMBINDINFO
   pwszDataSourceType AS DWORD
   pwszName AS DWORD
   ulParamSize AS DWORD
   dwFlags AS DWORD
   bPrecision AS BYTE
   bScale AS BYTE
END TYPE
 

 

DBPARAMETER

 

TYPE DBPARAMETER
   pwszName AS DWORD ' LPWSTR // parameter name
   pTypeInfo AS DWORD ' ITypeInfo * // if not a null pointer, type is described by the ITypeInfo
   pNum AS DB_NUMERIC PTR ' DB_NUMERIC * // Structure describing the precision, scale and value of the numeric value.
   cbMaxLength AS DWORD ' DBLENGTH // the maximum length of the parameter
   dwFlags AS DWORD ' DBPARAMFLAGS // bitmask describing parameter characteristics
   wType AS WORD ' DBTYPE // type of the parameter
END TYPE
 

 

DBPARAMINFO

 

TYPE DBPARAMINFO
   dwFlags AS DWORD
   iOrdinal AS DWORD
   pwszName AS DWORD
   pTypeInfo AS DWORD
   ulParamSize AS DWORD
   wType AS WORD
   bPrecision AS BYTE
   bScale AS BYTE
END TYPE
 

 

DBPARAMS

 

TYPE DBPARAMS
   pData AS DWORD
   cParamSets AS DWORD
   hAccessor AS DWORD
END TYPE
 

 

DBPROP

 

TYPE DBPROP
   dwPropertyID AS DWORD ' // DBPROPID
   dwOptions AS DWORD ' // DBPROPOPTIONS
   dwStatus AS DWORD ' // DBPROPSTATUS
   colid AS DBID
   vValue AS VARIANTAPI
END TYPE
 

 

DBPROPIDSET

 

TYPE DBPROPIDSET
   rgPropertyIDs AS DWORD
   cPropertyIDs AS DWORD
   guidPropertySet AS GUID
END TYPE
 

 

DBPROPINFO

 

TYPE DBPROPINFO
   pwszDescription AS DWORD
   dwPropertyID AS DWORD
   dwFlags AS DWORD

   vtType AS WORD
   vValues AS VARIANTAPI
END TYPE
 

 

DBPROPINFOSET

 

TYPE DBPROPINFOSET
   rgPropertyInfos AS DBPROPINFO PTR
   cPropertyInfos AS DWORD
   guidPropertySet AS GUID
END TYPE
 

 

DBPROPSET

 

TYPE DBPROPSET
   rgProperties AS DBPROP PTR
   cProperties AS DWORD
   guidPropertySet AS GUID
END TYPE
 

 

DBROWWATCHRANGE

 

TYPE DBROWWATCHRANGE
   hRegion AS DWORD
   eChangeKind AS DWORD

   hRow AS DWORD
   iRow AS DWORD
END TYPE
 

 

DBSETFUNC

 

%DBSETFUNC_NONE = &H0
%DBSETFUNC_ALL = &H1
%DBSETFUNC_DISTINCT = &H2

 

TYPE DBSETFUNC
   dwSetQuantifier AS DWORD ' DWORD // which aggregation method to use
END TYPE
 

 

DBSORTINFO

 

TYPE DBSORTINFO
   fDesc AS LONG ' BOOL // TRUE = ascending, FALSE = descending
   lcid AS LONG ' LCID // locale identifier
END TYPE
 

 

DBTEXT

 

TYPE DBTEXT
   pwszText AS DWORD ' LPWTR
   ulErrorLocator AS DWORD ' ULONG // set by validation routines
   ulTokenLength AS DWORD ' ULONG // length of offending token
   guidDialect AS GUID ' GUID // GUID of the language and dialect
END TYPE
 

 

DBTIME

 

TYPE DBTIME
   hour AS WORD
   minute AS WORD
   second AS WORD
END TYPE
 

 

DBTIMESTAMP

 

TYPE DBTIMESTAMP
   year AS INTEGER
   month AS WORD
   day AS WORD
   hour AS WORD
   minute AS WORD
   second AS WORD
   fraction AS DWORD
END TYPE
 

 

DB_VARNUMERIC

 

TYPE DB_VARNUMERIC
   precission AS BYTE
   scale AS BYTE
   sign AS BYTE
   value (0) AS BYTE  ' Variable-length array
END TYPE
 

 

DBVECTOR

 

TYPE DBVECTOR
   dwsize AS DWORD
   dwptr AS DWORD
END TYPE
 

 

DBYGUID

 

TYPE DBBYGUID
   pbInfo AS BYTE PTR ' // extra node information, provider-specific
   cbInfo AS DWORD ' // size of the data in pbInfo
   rguid AS GUID ' // this node's GUID
END TYPE
 

 

DCINFO

 

TYPE DCINFO
   eInfoType AS DWORD
   vData AS VARIANTAPI
END TYPE
 

 

DECIMAL

 

%DECIMAL_NEG = &H80?

 

TYPE DECIMAL_SIGNSCALE
   scale AS BYTE
   sign AS BYTE
END TYPE

UNION DECIMAL_SIGNSCALE_UNION
   tsignscale AS DECIMAL_SIGNSCALE
   signscale AS WORD
END UNION

TYPE DECIMAL_LOMID
   Lo32 AS DWORD
   Mid32 AS DWORD
END TYPE
 

UNION DECIMAL_LOMID32LO64_UNION
   DECIMAL_LOMID32
   Lo64 AS QUAD
END UNION


TYPE DECIMAL
   wReserved AS WORD
   DECIMAL_SIGNSCALE_UNION
   Hi32 AS DWORD
   DECIMAL_LOMID32LO64_UNION
END TYPE
 

Simplified declaration:

 

TYPE DECIMAL
   wReserved AS WORD
   scale AS BYTE

   sign AS BYTE

   Hi32 AS DWORD

   Lo64 AS QUAD

END TYPE

 

 

ERRORINFO

 

TYPE ERRORINFO
   hrError AS DWORD
   dwMinor AS DWORD
   rclsid AS GUID
   iid AS GUID
   dispid AS LONG
END TYPE
 

 

EXPLICIT_ACCESS

 

' enum _ACCESS_MODE
%NOT_USED_ACCESS = 0
%GRANT_ACCESS = %NOT_USED_ACCESS + 1
%SET_ACCESS = %GRANT_ACCESS + 1
%DENY_ACCESS = %SET_ACCESS + 1
%REVOKE_ACCESS = %DENY_ACCESS + 1
%SET_AUDIT_SUCCESS = %REVOKE_ACCESS + 1
%SET_AUDIT_FAILURE = %SET_AUDIT_SUCCESS + 1

' enum _SE_OBJECT_TYPE
%SE_UNKNOWN_OBJECT_TYPE = 0
%SE_FILE_OBJECT = %SE_UNKNOWN_OBJECT_TYPE + 1
%SE_SERVICE = %SE_FILE_OBJECT + 1
%SE_PRINTER = %SE_SERVICE + 1
%SE_REGISTRY_KEY = %SE_PRINTER + 1
%SE_LMSHARE = %SE_REGISTRY_KEY + 1
%SE_KERNEL_OBJECT = %SE_LMSHARE + 1
%SE_WINDOW_OBJECT = %SE_KERNEL_OBJECT + 1

TYPE EXPLICIT_ACCESS_W
   grfAccessPermissions AS DWORD
   grfAccessMode AS DWORD
   grfInheritance AS DWORD
   Trustee AS DWORD
END TYPE

TYPE EXPLICIT_ACCESS_A
   grfAccessPermissions AS DWORD
   grfAccessMode AS DWORD
   grfInheritance AS DWORD
   Trustee AS DWORD
END TYPE
 

 

MDAXISINFO

 

%MDAXIS_COLUMNS = &H00000000
%MDAXIS_ROWS = &H00000001
%MDAXIS_PAGES = &H00000002
%MDAXIS_SECTIONS = &H00000003
%MDAXIS_CHAPTERS = &H00000004
%MDAXIS_SLICERS = &Hffffffff

 

TYPE MDAXISINFO
   cbSize AS DWORD
   iAxis AS DWORD
   cDimensions AS DWORD
   cCoordinates AS DWORD
   rgcColumns AS DWORD
   rgpwszDimensionNames AS DWORD
END TYPE
 

 

SEC_OBJECT

 

TYPE SEC_OBJECT
   cObjects AS DWORD
   prgObjects AS DWORD
END TYPE
 

 

SEC_OBJECT_ELEMENT

 

TYPE SEC_OBJECT_ELEMENT
   guidObjectType AS GUID
   ObjectID AS DBID
END TYPE
 

 

TRUSTEE

 

' enum _TRUSTEE_TYPE
%TRUSTEE_IS_UNKNOWN = 0
%TRUSTEE_IS_USER = %TRUSTEE_IS_UNKNOWN + 1
%TRUSTEE_IS_GROUP = %TRUSTEE_IS_USER + 1

' enum _TRUSTEE_FORM
%TRUSTEE_IS_SID = 0
%TRUSTEE_IS_NAME = %TRUSTEE_IS_SID + 1

' enum _MULTIPLE_TRUSTEE_OPERATION
%NO_MULTIPLE_TRUSTEE = 0
%TRUSTEE_IS_IMPERSONATE = %NO_MULTIPLE_TRUSTEE + 1

TYPE TRUSTEE_W
   pMultipleTrustee AS DWORD
   MultipleTrusteeOperation AS DWORD
   TrusteeForm AS DWORD
   TrusteeType AS DWORD
   ptstrName AS DWORD
END TYPE

TYPE TRUSTEE_A
   pMultipleTrustee AS DWORD
   MultipleTrusteeOperation AS DWORD
   TrusteeForm AS DWORD
   TrusteeType AS DWORD
   ptstrName AS DWORD
END TYPE
 

 

Enumerations

 

ACCESS_MASKENUM

 

%PERM_DESIGN = &H800
%PERM_WITHGRANT = &H1000
%PERM_REFERENCE = &H2000
%PERM_CREATE = &H4000
%PERM_INSERT = &H8000
%PERM_DELETE = &H10000
%PERM_MAXIMUM_ALLOWED = &H2000000
%PERM_ALL = &H10000000
%PERM_EXECUTE = &H20000000
%PERM_READ = &H80000000
%PERM_UPDATE = &H40000000

 

 

DBACCESSORFLAGSENUM

 

%DBACCESSOR_INVALID = 0
%DBACCESSOR_PASSBYREF = &H1
%DBACCESSOR_ROWDATA = &H2
%DBACCESSOR_PARAMETERDATA = &H4
%DBACCESSOR_OPTIMIZED = &H8

 

 

DBACCESSORFLAGSENUM25

 

%DBACCESSOR_INHERITED = &H10

 

 

DBASYNCHOPENENUM

 

%DBASYNCHOP_OPEN = 0

 

 

DBASYNCHPHASEENUM

 

%DBASYNCHPHASE_INITIALIZATION = 0
%DBASYNCHPHASE_POPULATION = %DBASYNCHPHASE_INITIALIZATION + 1
%DBASYNCHPHASE_COMPLETE = %DBASYNCHPHASE_POPULATION + 1
%DBASYNCHPHASE_CANCELED = %DBASYNCHPHASE_COMPLETE + 1

 

 

DBBINDFLAGENUM

 

%DBBINDFLAG_HTML = &H1

 

 

DBBINDSTATUSENUM

 

%DBBINDSTATUS_OK = 0
%DBBINDSTATUS_BADORDINAL = 1
%DBBINDSTATUS_UNSUPPORTEDCONVERSION = 2
%DBBINDSTATUS_BADBINDINFO = 3
%DBBINDSTATUS_BADSTORAGEFLAGS = 4
%DBBINDSTATUS_NOINTERFACE = 5
%DBBINDSTATUS_MULTIPLESTORAGE = 6

 

 

DBBOOKMARK

 

%DBBMK_INVALID = 0
%DBBMK_FIRST = %DBBMK_INVALID + 1
%DBBMK_LAST = %DBBMK_FIRST + 1

 

 

DBCOLUMNDESCFLAGSENUM

 

%DBCOLUMNDESCFLAGS_TYPENAME = &H1
%DBCOLUMNDESCFLAGS_ITYPEINFO = &H2
%DBCOLUMNDESCFLAGS_PROPERTIES = &H4
%DBCOLUMNDESCFLAGS_CLSID = &H8
%DBCOLUMNDESCFLAGS_COLSIZE = &H10
%DBCOLUMNDESCFLAGS_DBCID = &H20
%DBCOLUMNDESCFLAGS_WTYPE = &H40
%DBCOLUMNDESCFLAGS_PRECISION = &H80
%DBCOLUMNDESCFLAGS_SCALE = &H100

 

 

DBCOLUMNSFLAGSENUM

 

%DBCOLUMNFLAGS_ISBOOKMARK = &H1
%DBCOLUMNFLAGS_MAYDEFER = &H2
%DBCOLUMNFLAGS_WRITE = &H4
%DBCOLUMNFLAGS_WRITEUNKNOWN = &H8
%DBCOLUMNFLAGS_ISFIXEDLENGTH = &H10
%DBCOLUMNFLAGS_ISNULLABLE = &H20
%DBCOLUMNFLAGS_MAYBENULL = &H40
%DBCOLUMNFLAGS_ISLONG = &H80
%DBCOLUMNFLAGS_ISROWID = &H100
%DBCOLUMNFLAGS_ISROWVER = &H200
%DBCOLUMNFLAGS_CACHEDEFERRED = &H1000

 

 

DBCOLUMNSFLAGSENUM20

 

%BCOLUMNFLAGS_SCALEISNEGATIVE = &H4000
%DBCOLUMNFLAGS_KEYCOLUMN = &H8000

 

 

DBCOLUMNSFLAGS15ENUM

 

%DBCOLUMNFLAGS_ISCHAPTER = &H2000

 

 

DBCOMMANDOPENUM

 

%DBOP_scalar_constant = 0
%DBOP_DEFAULT = %DBOP_scalar_constant + 1
%DBOP_NULL = %DBOP_DEFAULT + 1
%DBOP_bookmark_name = %DBOP_NULL + 1
%DBOP_catalog_name = %DBOP_bookmark_name + 1
%DBOP_column_name = %DBOP_catalog_name + 1
%DBOP_schema_name = %DBOP_column_name + 1
%DBOP_outall_name = %DBOP_schema_name + 1
%DBOP_qualifier_name = %DBOP_outall_name + 1
%DBOP_qualified_column_name = %DBOP_qualifier_name + 1
%DBOP_table_name = %DBOP_qualified_column_name + 1
%DBOP_nested_table_name = %DBOP_table_name + 1
%DBOP_nested_column_name = %DBOP_nested_table_name + 1
%DBOP_row = %DBOP_nested_column_name + 1
%DBOP_table = %DBOP_row + 1
%DBOP_sort = %DBOP_table + 1
%DBOP_distinct = %DBOP_sort + 1
%DBOP_distinct_order_preserving = %DBOP_distinct + 1
%DBOP_alias = %DBOP_distinct_order_preserving + 1
%DBOP_cross_join = %DBOP_alias + 1
%DBOP_union_join = %DBOP_cross_join + 1
%DBOP_inner_join = %DBOP_union_join + 1
%DBOP_left_semi_join = %DBOP_inner_join + 1
%DBOP_right_semi_join = %DBOP_left_semi_join + 1
%DBOP_left_anti_semi_join = %DBOP_right_semi_join + 1
%DBOP_right_anti_semi_join = %DBOP_left_anti_semi_join + 1
%DBOP_left_outer_join = %DBOP_right_anti_semi_join + 1
%DBOP_right_outer_join = %DBOP_left_outer_join + 1
%DBOP_full_outer_join = %DBOP_right_outer_join + 1
%DBOP_natural_join = %DBOP_full_outer_join + 1
%DBOP_natural_left_outer_join = %DBOP_natural_join + 1
%DBOP_natural_right_outer_join = %DBOP_natural_left_outer_join + 1
%DBOP_natural_full_outer_join = %DBOP_natural_right_outer_join + 1
%DBOP_set_intersection = %DBOP_natural_full_outer_join + 1
%DBOP_set_union = %DBOP_set_intersection + 1
%DBOP_set_left_difference = %DBOP_set_union + 1
%DBOP_set_right_difference = %DBOP_set_left_difference + 1
%DBOP_set_anti_difference = %DBOP_set_right_difference + 1
%DBOP_bag_intersection = %DBOP_set_anti_difference + 1
%DBOP_bag_union = %DBOP_bag_intersection + 1
%DBOP_bag_left_difference = %DBOP_bag_union + 1
%DBOP_bag_right_difference = %DBOP_bag_left_difference + 1
%DBOP_bag_anti_difference = %DBOP_bag_right_difference + 1
%DBOP_division = %DBOP_bag_anti_difference + 1
%DBOP_relative_sampling = %DBOP_division + 1
%DBOP_absolute_sampling = %DBOP_relative_sampling + 1
%DBOP_transitive_closure = %DBOP_absolute_sampling + 1
%DBOP_recursive_union = %DBOP_transitive_closure + 1
%DBOP_aggregate = %DBOP_recursive_union + 1
%DBOP_remote_table = %DBOP_aggregate + 1
%DBOP_select = %DBOP_remote_table + 1
%DBOP_order_preserving_select = %DBOP_select + 1
%DBOP_project = %DBOP_order_preserving_select + 1
%DBOP_project_order_preserving = %DBOP_project + 1
%DBOP_top = %DBOP_project_order_preserving + 1
%DBOP_top_percent = %DBOP_top + 1
%DBOP_top_plus_ties = %DBOP_top_percent + 1
%DBOP_top_percent_plus_ties = %DBOP_top_plus_ties + 1
%DBOP_rank = %DBOP_top_percent_plus_ties + 1
%DBOP_rank_ties_equally = %DBOP_rank + 1
%DBOP_rank_ties_equally_and_skip = %DBOP_rank_ties_equally + 1
%DBOP_navigate = %DBOP_rank_ties_equally_and_skip + 1
%DBOP_nesting = %DBOP_navigate + 1
%DBOP_unnesting = %DBOP_nesting + 1
%DBOP_nested_apply = %DBOP_unnesting + 1
%DBOP_cross_tab = %DBOP_nested_apply + 1
%DBOP_is_NULL = %DBOP_cross_tab + 1
%DBOP_is_NOT_NULL = %DBOP_is_NULL + 1
%DBOP_equal = %DBOP_is_NOT_NULL + 1
%DBOP_not_equal = %DBOP_equal + 1
%DBOP_less = %DBOP_not_equal + 1
%DBOP_less_equal = %DBOP_less + 1
%DBOP_greater = %DBOP_less_equal + 1
%DBOP_greater_equal = %DBOP_greater + 1
%DBOP_equal_all = %DBOP_greater_equal + 1
%DBOP_not_equal_all = %DBOP_equal_all + 1
%DBOP_less_all = %DBOP_not_equal_all + 1
%DBOP_less_equal_all = %DBOP_less_all + 1
%DBOP_greater_all = %DBOP_less_equal_all + 1
%DBOP_greater_equal_all = %DBOP_greater_all + 1
%DBOP_equal_any = %DBOP_greater_equal_all + 1
%DBOP_not_equal_any = %DBOP_equal_any + 1
%DBOP_less_any = %DBOP_not_equal_any + 1
%DBOP_less_equal_any = %DBOP_less_any + 1
%DBOP_greater_any = %DBOP_less_equal_any + 1
%DBOP_greater_equal_any = %DBOP_greater_any + 1
%DBOP_anybits = %DBOP_greater_equal_any + 1
%DBOP_allbits = %DBOP_anybits + 1
%DBOP_anybits_any = %DBOP_allbits + 1
%DBOP_allbits_any = %DBOP_anybits_any + 1
%DBOP_anybits_all = %DBOP_allbits_any + 1
%DBOP_allbits_all = %DBOP_anybits_all + 1
%DBOP_between = %DBOP_allbits_all + 1
%DBOP_between_unordered = %DBOP_between + 1
%DBOP_match = %DBOP_between_unordered + 1
%DBOP_match_unique = %DBOP_match + 1
%DBOP_match_partial = %DBOP_match_unique + 1
%DBOP_match_partial_unique = %DBOP_match_partial + 1
%DBOP_match_full = %DBOP_match_partial_unique + 1
%DBOP_match_full_unique = %DBOP_match_full + 1
%DBOP_scalar_parameter = %DBOP_match_full_unique + 1
%DBOP_scalar_function = %DBOP_scalar_parameter + 1
%DBOP_plus = %DBOP_scalar_function + 1
%DBOP_minus = %DBOP_plus + 1
%DBOP_times = %DBOP_minus + 1
%DBOP_over = %DBOP_times + 1
%DBOP_div = %DBOP_over + 1
%DBOP_modulo = %DBOP_div + 1
%DBOP_power = %DBOP_modulo + 1
%DBOP_like = %DBOP_power + 1
%DBOP_sounds_like = %DBOP_like + 1
%DBOP_like_any = %DBOP_sounds_like + 1
%DBOP_like_all = %DBOP_like_any + 1
%DBOP_is_INVALID = %DBOP_like_all + 1
%DBOP_is_TRUE = %DBOP_is_INVALID + 1
%DBOP_is_FALSE = %DBOP_is_TRUE + 1
%DBOP_and = %DBOP_is_FALSE + 1
%DBOP_or = %DBOP_and + 1
%DBOP_xor = %DBOP_or + 1
%DBOP_equivalent = %DBOP_xor + 1
%DBOP_not = %DBOP_equivalent + 1
%DBOP_implies = %DBOP_not + 1
%DBOP_overlaps = %DBOP_implies + 1
%DBOP_case_condition = %DBOP_overlaps + 1
%DBOP_case_value = %DBOP_case_condition + 1
%DBOP_nullif = %DBOP_case_value + 1
%DBOP_cast = %DBOP_nullif + 1
%DBOP_coalesce = %DBOP_cast + 1
%DBOP_position = %DBOP_coalesce + 1
%DBOP_extract = %DBOP_position + 1
%DBOP_char_length = %DBOP_extract + 1
%DBOP_octet_length = %DBOP_char_length + 1
%DBOP_bit_length = %DBOP_octet_length + 1
%DBOP_substring = %DBOP_bit_length + 1
%DBOP_upper = %DBOP_substring + 1
%DBOP_lower = %DBOP_upper + 1
%DBOP_trim = %DBOP_lower + 1
%DBOP_translate = %DBOP_trim + 1
%DBOP_convert = %DBOP_translate + 1
%DBOP_string_concat = %DBOP_convert + 1
%DBOP_current_date = %DBOP_string_concat + 1
%DBOP_current_time = %DBOP_current_date + 1
%DBOP_current_timestamp = %DBOP_current_time + 1
%DBOP_content_select = %DBOP_current_timestamp + 1
%DBOP_content = %DBOP_content_select + 1
%DBOP_content_freetext = %DBOP_content + 1
%DBOP_content_proximity = %DBOP_content_freetext + 1
%DBOP_content_vector_or = %DBOP_content_proximity + 1
%DBOP_delete = %DBOP_content_vector_or + 1
%DBOP_update = %DBOP_delete + 1
%DBOP_insert = %DBOP_update + 1
%DBOP_min = %DBOP_insert + 1
%DBOP_max = %DBOP_min + 1
%DBOP_count = %DBOP_max + 1
%DBOP_sum = %DBOP_count + 1
%DBOP_avg = %DBOP_sum + 1
%DBOP_any_sample = %DBOP_avg + 1
%DBOP_stddev = %DBOP_any_sample + 1
%DBOP_stddev_pop = %DBOP_stddev + 1
%DBOP_var = %DBOP_stddev_pop + 1
%DBOP_var_pop = %DBOP_var + 1
%DBOP_first = %DBOP_var_pop + 1
%DBOP_last = %DBOP_first + 1
%DBOP_in = %DBOP_last + 1
%DBOP_exists = %DBOP_in + 1
%DBOP_unique = %DBOP_exists + 1
%DBOP_subset = %DBOP_unique + 1
%DBOP_proper_subset = %DBOP_subset + 1
%DBOP_superset = %DBOP_proper_subset + 1
%DBOP_proper_superset = %DBOP_superset + 1
%DBOP_disjoint = %DBOP_proper_superset + 1
%DBOP_pass_through = %DBOP_disjoint + 1
%DBOP_defined_by_GUID = %DBOP_pass_through + 1
%DBOP_text_command = %DBOP_defined_by_GUID + 1
%DBOP_SQL_select = %DBOP_text_command + 1
%DBOP_prior_command_tree = %DBOP_SQL_select + 1
%DBOP_add_columns = %DBOP_prior_command_tree + 1
%DBOP_column_list_anchor = %DBOP_add_columns + 1
%DBOP_column_list_element = %DBOP_column_list_anchor + 1
%DBOP_command_list_anchor = %DBOP_column_list_element + 1
%DBOP_command_list_element = %DBOP_command_list_anchor + 1
%DBOP_from_list_anchor = %DBOP_command_list_element + 1
%DBOP_from_list_element = %DBOP_from_list_anchor + 1
%DBOP_project_list_anchor = %DBOP_from_list_element + 1
%DBOP_project_list_element = %DBOP_project_list_anchor + 1
%DBOP_row_list_anchor = %DBOP_project_list_element + 1
%DBOP_row_list_element = %DBOP_row_list_anchor + 1
%DBOP_scalar_list_anchor = %DBOP_row_list_element + 1
%DBOP_scalar_list_element = %DBOP_scalar_list_anchor + 1
%DBOP_set_list_anchor = %DBOP_scalar_list_element + 1
%DBOP_set_list_element = %DBOP_set_list_anchor + 1
%DBOP_sort_list_anchor = %DBOP_set_list_element + 1
%DBOP_sort_list_element = %DBOP_sort_list_anchor + 1
%DBOP_alter_character_set = %DBOP_sort_list_element + 1
%DBOP_alter_collation = %DBOP_alter_character_set + 1
%DBOP_alter_domain = %DBOP_alter_collation + 1
%DBOP_alter_index = %DBOP_alter_domain + 1
%DBOP_alter_procedure = %DBOP_alter_index + 1
%DBOP_alter_schema = %DBOP_alter_procedure + 1
%DBOP_alter_table = %DBOP_alter_schema + 1
%DBOP_alter_trigger = %DBOP_alter_table + 1
%DBOP_alter_view = %DBOP_alter_trigger + 1
%DBOP_coldef_list_anchor = %DBOP_alter_view + 1
%DBOP_coldef_list_element = %DBOP_coldef_list_anchor + 1
%DBOP_create_assertion = %DBOP_coldef_list_element + 1
%DBOP_create_character_set = %DBOP_create_assertion + 1
%DBOP_create_collation = %DBOP_create_character_set + 1
%DBOP_create_domain = %DBOP_create_collation + 1
%DBOP_create_index = %DBOP_create_domain + 1
%DBOP_create_procedure = %DBOP_create_index + 1
%DBOP_create_schema = %DBOP_create_procedure + 1
%DBOP_create_synonym = %DBOP_create_schema + 1
%DBOP_create_table = %DBOP_create_synonym + 1
%DBOP_create_temporary_table = %DBOP_create_table + 1
%DBOP_create_translation = %DBOP_create_temporary_table + 1
%DBOP_create_trigger = %DBOP_create_translation + 1
%DBOP_create_view = %DBOP_create_trigger + 1
%DBOP_drop_assertion = %DBOP_create_view + 1
%DBOP_drop_character_set = %DBOP_drop_assertion + 1
%DBOP_drop_collation = %DBOP_drop_character_set + 1
%DBOP_drop_domain = %DBOP_drop_collation + 1
%DBOP_drop_index = %DBOP_drop_domain + 1
%DBOP_drop_procedure = %DBOP_drop_index + 1
%DBOP_drop_schema = %DBOP_drop_procedure + 1
%DBOP_drop_synonym = %DBOP_drop_schema + 1
%DBOP_drop_table = %DBOP_drop_synonym + 1
%DBOP_drop_translation = %DBOP_drop_table + 1
%DBOP_drop_trigger = %DBOP_drop_translation + 1
%DBOP_drop_view = %DBOP_drop_trigger + 1
%DBOP_foreign_key = %DBOP_drop_view + 1
%DBOP_grant_privileges = %DBOP_foreign_key + 1
%DBOP_index_list_anchor = %DBOP_grant_privileges + 1
%DBOP_index_list_element = %DBOP_index_list_anchor + 1
%DBOP_primary_key = %DBOP_index_list_element + 1
%DBOP_property_list_anchor = %DBOP_primary_key + 1
%DBOP_property_list_element = %DBOP_property_list_anchor + 1
%DBOP_referenced_table = %DBOP_property_list_element + 1
%DBOP_rename_object = %DBOP_referenced_table + 1
%DBOP_revoke_privileges = %DBOP_rename_object + 1
%DBOP_schema_authorization = %DBOP_revoke_privileges + 1
%DBOP_unique_key = %DBOP_schema_authorization + 1
 

 

DBCOMMMANDPERSISTFLAGENUM

 

%DBCOMMANDPERSISTFLAG_NOSAVE = &H1

 

 

DBCOMMMANDREUSEENUM

 

%DBCOMMANDREUSE_NONE = 0
%DBCOMMANDREUSE_PROPERTIES = &H1
%DBCOMMANDREUSE_PARAMETERS = &H2

 

 

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 = &H1000
%DBCOMPAREOPS_CASEINSENSITIVE = &H2000

 

 

DBCOMPAREOPSENUM20

 

%DBCOMPAREOPS_NOTBEGINSWITH = 9
%DBCOMPAREOPS_NOTCONTAINS = 10

 

 

DBCONVERTFLAGSENUM

 

%DBCONVERTFLAGS_COLUMN = 0
%DBCONVERTFLAGS_PARAMETER = &H1

 

 

DBCONVERTFLAGSENUM20

 

%DBCONVERTFLAGS_ISLONG = &H2
%DBCONVERTFLAGS_ISFIXEDLENGTH = &H4
%DBCONVERTFLAGS_FROMVARIANT = &H8

 

 

DBCOSTUNITENUM

 

%DBUNIT_INVALID = 0
%DBUNIT_WEIGHT = &H1
%DBUNIT_PERCENT = &H2
%DBUNIT_MAXIMUM = &H4
%DBUNIT_MINIMUM = &H8
%DBUNIT_MICRO_SECOND = &H10
%DBUNIT_MILLI_SECOND = &H20
%DBUNIT_SECOND = &H40
%DBUNIT_MINUTE = &H80
%DBUNIT_HOUR = &H100
%DBUNIT_BYTE = &H200
%DBUNIT_KILO_BYTE = &H400
%DBUNIT_MEGA_BYTE = &H800
%DBUNIT_GIGA_BYTE = &H1000
%DBUNIT_NUM_MSGS = &H2000
%DBUNIT_NUM_LOCKS = &H4000
%DBUNIT_NUM_ROWS = &H8000
%DBUNIT_OTHER = &H10000

 

 

DBDATACONVERTENUM

 

%DBDATACONVERT_DEFAULT = 0
%DBDATACONVERT_SETDATABEHAVIOR = &H1
%DBDATACONVERT_LENGTHFROMNTS = &H2
%DBDATACONVERT_DSTISFIXEDLENGTH = &H4
%DBDATACONVERT_DECIMALSCALE = &H8
 

 

DBEVENTPHASEENUM

 

%DBEVENTPHASE_OKTODO = 0
%DBEVENTPHASE_ABOUTTODO = %DBEVENTPHASE_OKTODO + 1
%DBEVENTPHASE_SYNCHAFTER = %DBEVENTPHASE_ABOUTTODO + 1
%DBEVENTPHASE_FAILEDTODO = %DBEVENTPHASE_SYNCHAFTER + 1
%DBEVENTPHASE_DIDEVENT = %DBEVENTPHASE_FAILEDTODO + 1

 

 

DBEXECLIMITSENUM

 

%DBEXECLIMITS_ABORT = 1
%DBEXECLIMITS_STOP = 2
%DBEXECLIMITS_SUSPEND = 3

 

 

DBINDEX_COL_ORDERENUM

 

%DBINDEX_COL_ORDER_ASC = 0
%DBINDEX_COL_ORDER_DESC = %DBINDEX_COL_ORDER_ASC + 1

 

 

DBKINDENUM

 

The DBKINDENUM enumerated type specifies the combination of GUID, property number, or property name to use to identify a database object.

 

The DBID structure uses a value from this enumerated type as a parameter.

The OLE DB Provider for Indexing Service accepts only the DBKIND_GUID_NAME, DBKIND_GUID_PROPID, DBKIND_PGUID_NAME, and DBKIND_PGUID_PROPID values.
 

 

%DBKIND_GUID_NAME = 0
%DBKIND_GUID_PROPID = %DBKIND_GUID_NAME + 1
%DBKIND_NAME = %DBKIND_GUID_PROPID + 1
%DBKIND_PGUID_NAME = %DBKIND_NAME + 1
%DBKIND_PGUID_PROPID = %DBKIND_PGUID_NAME + 1
%DBKIND_PROPID = %DBKIND_PGUID_PROPID + 1
%DBKIND_GUID = %DBKIND_PROPID + 1

 

 

DBLITERALENUM

 

%DBLITERAL_INVALID = 0
%DBLITERAL_BINARY_LITERAL = 1
%DBLITERAL_CATALOG_NAME = 2
%DBLITERAL_CATALOG_SEPARATOR = 3
%DBLITERAL_CHAR_LITERAL = 4
%DBLITERAL_COLUMN_ALIAS = 5
%DBLITERAL_COLUMN_NAME = 6
%DBLITERAL_CORRELATION_NAME = 7
%DBLITERAL_CURSOR_NAME = 8
%DBLITERAL_ESCAPE_PERCENT = 9
%DBLITERAL_ESCAPE_UNDERSCORE = 10
%DBLITERAL_INDEX_NAME = 11
%DBLITERAL_LIKE_PERCENT = 12
%DBLITERAL_LIKE_UNDERSCORE = 13
%DBLITERAL_PROCEDURE_NAME = 14
%DBLITERAL_QUOTE = 15
%DBLITERAL_SCHEMA_NAME = 16
%DBLITERAL_TABLE_NAME = 17
%DBLITERAL_TEXT_COMMAND = 18
%DBLITERAL_USER_NAME = 19
%DBLITERAL_VIEW_NAME = 20

%DBLITERAL_QUOTE_PREFIX = %DBLITERAL_QUOTE
 

 

DBLITERALENUM20

 

%DBLITERAL_CUBE_NAME = 21
%DBLITERAL_DIMENSION_NAME = 22
%DBLITERAL_HIERARCHY_NAME = 23
%DBLITERAL_LEVEL_NAME = 24
%DBLITERAL_MEMBER_NAME = 25
%DBLITERAL_PROPERTY_NAME = 26
%DBLITERAL_SCHEMA_SEPARATOR = 27
%DBLITERAL_QUOTE_SUFFIX = 28

 

 

DBMEMOWNERENUM

 

%DBMEMOWNER_CLIENTOWNED = 0
%DBMEMOWNER_PROVIDEROWNED = &H1

 

 

DBPARAMFLAGSENUM

 

%DBPARAMFLAGS_ISINPUT = &H1
%DBPARAMFLAGS_ISOUTPUT = &H2
%DBPARAMFLAGS_ISSIGNED = &H10
%DBPARAMFLAGS_ISNULLABLE = &H40
%DBPARAMFLAGS_ISLONG = &H80

 

 

DBPARAMFLAGSENUM20

 

%DBPARAMFLAGS_SCALEISNEGATIVE = &H100

 

 

DBPARAMIOENUM

 

%DBPARAMIO_NOTPARAM = 0
%DBPARAMIO_INPUT = &H1
%DBPARAMIO_OUTPUT = &H2

 

 

DBPARTENUM

 

%DBPART_INVALID = 0
%DBPART_VALUE = &H1
%DBPART_LENGTH = &H2
%DBPART_STATUS = &H4

 

 

DBPROMPTOPTIONSENUM

 

%DBPROMPTOPTIONS_NONE = 0
%DBPROMPTOPTIONS_WIZARDSHEET = &H1
%DBPROMPTOPTIONS_PROPERTYSHEET = &H2
%DBPROMPTOPTIONS_BROWSEONLY = &H8
%DBPROMPTOPTIONS_DISABLE_PROVIDER_SELECTION = &H10
%DBPROMPTOPTIONS_DISABLESAVEPASSWORD = &H20
 

 

DBPROPENUM

 

%DBPROP_ABORTPRESERVE = &H2
%DBPROP_ACTIVESESSIONS = &H3
%DBPROP_APPENDONLY = &Hbb
%DBPROP_ASYNCTXNABORT = &Ha8
%DBPROP_ASYNCTXNCOMMIT = &H4
%DBPROP_AUTH_CACHE_AUTHINFO = &H5
%DBPROP_AUTH_ENCRYPT_PASSWORD = &H6
%DBPROP_AUTH_INTEGRATED = &H7
%DBPROP_AUTH_MASK_PASSWORD = &H8
%DBPROP_AUTH_PASSWORD = &H9
%DBPROP_AUTH_PERSIST_ENCRYPTED = &Ha
%DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO = &Hb
%DBPROP_AUTH_USERID = &Hc
%DBPROP_BLOCKINGSTORAGEOBJECTS = &Hd
%DBPROP_BOOKMARKS = &He
%DBPROP_BOOKMARKSKIPPED = &Hf
%DBPROP_BOOKMARKTYPE = &H10
%DBPROP_BYREFACCESSORS = &H78
%DBPROP_CACHEDEFERRED = &H11
%DBPROP_CANFETCHBACKWARDS = &H12
%DBPROP_CANHOLDROWS = &H13
%DBPROP_CANSCROLLBACKWARDS = &H15
%DBPROP_CATALOGLOCATION = &H16
%DBPROP_CATALOGTERM = &H17
%DBPROP_CATALOGUSAGE = &H18
%DBPROP_CHANGEINSERTEDROWS = &Hbc
%DBPROP_COL_AUTOINCREMENT = &H1a
%DBPROP_COL_DEFAULT = &H1b
%DBPROP_COL_DESCRIPTION = &H1c
%DBPROP_COL_FIXEDLENGTH = &Ha7
%DBPROP_COL_NULLABLE = &H1d
%DBPROP_COL_PRIMARYKEY = &H1e
%DBPROP_COL_UNIQUE = &H1f
%DBPROP_COLUMNDEFINITION = &H20
%DBPROP_COLUMNRESTRICT = &H21
%DBPROP_COMMANDTIMEOUT = &H22
%DBPROP_COMMITPRESERVE = &H23
%DBPROP_CONCATNULLBEHAVIOR = &H24
%DBPROP_CURRENTCATALOG = &H25
%DBPROP_DATASOURCENAME = &H26
%DBPROP_DATASOURCEREADONLY = &H27
%DBPROP_DBMSNAME = &H28
%DBPROP_DBMSVER = &H29
%DBPROP_DEFERRED = &H2a
%DBPROP_DELAYSTORAGEOBJECTS = &H2b
%DBPROP_DSOTHREADMODEL = &Ha9
%DBPROP_GROUPBY = &H2c
%DBPROP_HETEROGENEOUSTABLES = &H2d
%DBPROP_IAccessor = &H79
%DBPROP_IColumnsInfo = &H7a
%DBPROP_IColumnsRowset = &H7b
%DBPROP_IConnectionPointContainer = &H7c
%DBPROP_IConvertType = &Hc2
%DBPROP_IRowset = &H7e
%DBPROP_IRowsetChange = &H7f
%DBPROP_IRowsetIdentity = &H80
%DBPROP_IRowsetIndex = &H9f
%DBPROP_IRowsetInfo = &H81
%DBPROP_IRowsetLocate = &H82
%DBPROP_IRowsetResynch = &H84
%DBPROP_IRowsetScroll = &H85
%DBPROP_IRowsetUpdate = &H86
%DBPROP_ISupportErrorInfo = &H87
%DBPROP_ILockBytes = &H88
%DBPROP_ISequentialStream = &H89
%DBPROP_IStorage = &H8a
%DBPROP_IStream = &H8b
%DBPROP_IDENTIFIERCASE = &H2e
%DBPROP_IMMOBILEROWS = &H2f
%DBPROP_INDEX_AUTOUPDATE = &H30
%DBPROP_INDEX_CLUSTERED = &H31
%DBPROP_INDEX_FILLFACTOR = &H32
%DBPROP_INDEX_INITIALSIZE = &H33
%DBPROP_INDEX_NULLCOLLATION = &H34
%DBPROP_INDEX_NULLS = &H35
%DBPROP_INDEX_PRIMARYKEY = &H36
%DBPROP_INDEX_SORTBOOKMARKS = &H37
%DBPROP_INDEX_TEMPINDEX = &Ha3
%DBPROP_INDEX_TYPE = &H38
%DBPROP_INDEX_UNIQUE = &H39
%DBPROP_INIT_DATASOURCE = &H3b
%DBPROP_INIT_HWND = &H3c
%DBPROP_INIT_IMPERSONATION_LEVEL = &H3d
%DBPROP_INIT_LCID = &Hba
%DBPROP_INIT_LOCATION = &H3e
%DBPROP_INIT_MODE = &H3f
%DBPROP_INIT_PROMPT = &H40
%DBPROP_INIT_PROTECTION_LEVEL = &H41
%DBPROP_INIT_PROVIDERSTRING = &Ha0
%DBPROP_INIT_TIMEOUT = &H42
%DBPROP_LITERALBOOKMARKS = &H43
%DBPROP_LITERALIDENTITY = &H44
%DBPROP_MARSHALLABLE = &Hc5
%DBPROP_MAXINDEXSIZE = &H46
%DBPROP_MAXOPENROWS = &H47
%DBPROP_MAXPENDINGROWS = &H48
%DBPROP_MAXROWS = &H49
%DBPROP_MAXROWSIZE = &H4a
%DBPROP_MAXROWSIZEINCLUDESBLOB = &H4b
%DBPROP_MAXTABLESINSELECT = &H4c
%DBPROP_MAYWRITECOLUMN = &H4d
%DBPROP_MEMORYUSAGE = &H4e
%DBPROP_MULTIPLEPARAMSETS = &Hbf
%DBPROP_MULTIPLERESULTS = &Hc4
%DBPROP_MULTIPLESTORAGEOBJECTS = &H50
%DBPROP_MULTITABLEUPDATE = &H51
%DBPROP_NOTIFICATIONGRANULARITY = &Hc6
%DBPROP_NOTIFICATIONPHASES = &H52
%DBPROP_NOTIFYCOLUMNSET = &Hab
%DBPROP_NOTIFYROWDELETE = &Had
%DBPROP_NOTIFYROWFIRSTCHANGE = &Hae
%DBPROP_NOTIFYROWINSERT = &Haf
%DBPROP_NOTIFYROWRESYNCH = &Hb1
%DBPROP_NOTIFYROWSETCHANGED = &Hd3
%DBPROP_NOTIFYROWSETRELEASE = &Hb2
%DBPROP_NOTIFYROWSETFETCHPOSITIONCHANGE = &Hb3
%DBPROP_NOTIFYROWUNDOCHANGE = &Hb4
%DBPROP_NOTIFYROWUNDODELETE = &Hb5
%DBPROP_NOTIFYROWUNDOINSERT = &Hb6
%DBPROP_NOTIFYROWUPDATE = &Hb7
%DBPROP_NULLCOLLATION = &H53
%DBPROP_OLEOBJECTS = &H54
%DBPROP_ORDERBYCOLUMNSINSELECT = &H55
%DBPROP_ORDEREDBOOKMARKS = &H56
%DBPROP_OTHERINSERT = &H57
%DBPROP_OTHERUPDATEDELETE = &H58
%DBPROP_OUTPUTPARAMETERAVAILABILITY = &Hb8
%DBPROP_OWNINSERT = &H59
%DBPROP_OWNUPDATEDELETE = &H5a
%DBPROP_PERSISTENTIDTYPE = &Hb9
%DBPROP_PREPAREABORTBEHAVIOR = &H5b
%DBPROP_PREPARECOMMITBEHAVIOR = &H5c
%DBPROP_PROCEDURETERM = &H5d
%DBPROP_PROVIDERNAME = &H60
%DBPROP_PROVIDEROLEDBVER = &H61
%DBPROP_PROVIDERVER = &H62
%DBPROP_QUICKRESTART = &H63
%DBPROP_QUOTEDIDENTIFIERCASE = &H64
%DBPROP_REENTRANTEVENTS = &H65
%DBPROP_REMOVEDELETED = &H66
%DBPROP_REPORTMULTIPLECHANGES = &H67
%DBPROP_RETURNPENDINGINSERTS = &Hbd
%DBPROP_ROWRESTRICT = &H68
%DBPROP_ROWSETCONVERSIONSONCOMMAND = &Hc0
%DBPROP_ROWTHREADMODEL = &H69
%DBPROP_SCHEMATERM = &H6a
%DBPROP_SCHEMAUSAGE = &H6b
%DBPROP_SERVERCURSOR = &H6c
%DBPROP_SESS_AUTOCOMMITISOLEVELS = &Hbe
%DBPROP_SQLSUPPORT = &H6d
%DBPROP_STRONGIDENTITY = &H77
%DBPROP_STRUCTUREDSTORAGE = &H6f
%DBPROP_SUBQUERIES = &H70
%DBPROP_SUPPORTEDTXNDDL = &Ha1
%DBPROP_SUPPORTEDTXNISOLEVELS = &H71
%DBPROP_SUPPORTEDTXNISORETAIN = &H72
%DBPROP_TABLETERM = &H73
%DBPROP_TBL_TEMPTABLE = &H8c
%DBPROP_TRANSACTEDOBJECT = &H74
%DBPROP_UPDATABILITY = &H75
%DBPROP_USERNAME = &H76

 

 

DBPROPENUM15

 

%DBPROP_FILTEROPS = &Hd0
%DBPROP_FILTERCOMPAREOPS = &Hd1
%DBPROP_FINDCOMPAREOPS = &Hd2
%DBPROP_IChapteredRowset = &Hca
%DBPROP_IDBAsynchStatus = &Hcb
%DBPROP_IRowsetFind = &Hcc
%DBPROP_IRowsetView = &Hd4
%DBPROP_IViewChapter = &Hd5
%DBPROP_IViewFilter = &Hd6
%DBPROP_IViewRowset = &Hd7
%DBPROP_IViewSort = &Hd8
%DBPROP_INIT_ASYNCH = &Hc8
%DBPROP_MAXOPENCHAPTERS = &Hc7
%DBPROP_MAXORSINFILTER = &Hcd
%DBPROP_MAXSORTCOLUMNS = &Hce
%DBPROP_ROWSET_ASYNCH = &Hc9
%DBPROP_SORTONINDEX = &Hcf

%DBPROP_PROVIDERFILENAME = %DBPROP_PROVIDERNAME
%DBPROP_SERVER_NAME = %DBPROP_SERVERNAME
 

 

DBPROPENUM20

 

%DBPROP_IMultipleResults = &Hd9
%DBPROP_DATASOURCE_TYPE = &Hfb
%MDPROP_AXES = &Hfc
%MDPROP_FLATTENING_SUPPORT = &Hfd
%MDPROP_MDX_JOINCUBES = &Hfe
%MDPROP_NAMED_LEVELS = &Hff
%MDPROP_RANGEROWSET = &H100
%MDPROP_MDX_SLICER = &Hda
%MDPROP_MDX_CUBEQUALIFICATION = &Hdb
%MDPROP_MDX_OUTERREFERENCE = &Hdc
%MDPROP_MDX_QUERYBYPROPERTY = &Hdd
%MDPROP_MDX_CASESUPPORT = &Hde
%MDPROP_MDX_STRING_COMPOP = &He0
%MDPROP_MDX_DESCFLAGS = &He1
%MDPROP_MDX_SET_FUNCTIONS = &He2
%MDPROP_MDX_MEMBER_FUNCTIONS = &He3
%MDPROP_MDX_NUMERIC_FUNCTIONS = &He4
%MDPROP_MDX_FORMULAS = &He5
%MDPROP_MDX_AGGREGATECELL_UPDATE = &He6
%DBPROP_ACCESSORDER = &He7
%DBPROP_BOOKMARKINFO = &He8
%DBPROP_INIT_CATALOG = &He9
%DBPROP_ROW_BULKOPS = &Hea
%DBPROP_PROVIDERFRIENDLYNAME = &Heb
%DBPROP_LOCKMODE = &Hec
%DBPROP_MULTIPLECONNECTIONS = &Hed
%DBPROP_UNIQUEROWS = &Hee
%DBPROP_SERVERDATAONINSERT = &Hef
%DBPROP_STORAGEFLAGS = &Hf0
%DBPROP_CONNECTIONSTATUS = &Hf4
%DBPROP_ALTERCOLUMN = &Hf5
%DBPROP_COLUMNLCID = &Hf6
%DBPROP_RESETDATASOURCE = &Hf7
%DBPROP_INIT_OLEDBSERVICES = &Hf8
%DBPROP_IRowsetRefresh = &Hf9
%DBPROP_SERVERNAME = &Hfa
%DBPROP_IParentRowset = &H101
%DBPROP_HIDDENCOLUMNS = &H102
%DBPROP_PROVIDERMEMORY = &H103
%DBPROP_CLIENTCURSOR = &H104
 

 

DBPROPENUM21

 

%DBPROP_TRUSTEE_USERNAME = &Hf1
%DBPROP_TRUSTEE_AUTHENTICATION = &Hf2
%DBPROP_TRUSTEE_NEWAUTHENTICATION = &Hf3
 

 

DBPROPENUM25

 

%DBPROP_ICommandCost = &H8d
%DBPROP_ICommandTree = &H8e
%DBPROP_ICommandValidate = &H8f
%DBPROP_IDBSchemaCommand = &H90
%DBPROP_IProvideMoniker = &H7d
%DBPROP_IQuery = &H92
%DBPROP_IReadData = &H93
%DBPROP_IRowsetAsynch = &H94
%DBPROP_IRowsetCopyRows = &H95
%DBPROP_IRowsetKeys = &H97
%DBPROP_IRowsetNewRowAfter = &H98
%DBPROP_IRowsetNextRowset = &H99
%DBPROP_IRowsetWatchAll = &H9b
%DBPROP_IRowsetWatchNotify = &H9c
%DBPROP_IRowsetWatchRegion = &H9d
%DBPROP_IRowsetWithParameters = &H9e
 

 

DBPROPENUMDEPRECATED

 

%DBPROP_IRowsetExactScroll = &H9a

%DBPROPVAL_BMK_NUMERIC = &H00000001
%DBPROPVAL_BMK_KEY = &H00000002
%DBPROPVAL_CL_START = &H00000001
%DBPROPVAL_CL_END = &H00000002
%DBPROPVAL_CU_DML_STATEMENTS = &H00000001
%DBPROPVAL_CU_TABLE_DEFINITION = &H00000002
%DBPROPVAL_CU_INDEX_DEFINITION = &H00000004
%DBPROPVAL_CU_PRIVILEGE_DEFINITION = &H00000008
%DBPROPVAL_CD_NOTNULL = &H00000001
%DBPROPVAL_CB_NULL = &H00000001
%DBPROPVAL_CB_NON_NULL = &H00000002
%DBPROPVAL_FU_NOT_SUPPORTED = &H00000001
%DBPROPVAL_FU_COLUMN = &H00000002
%DBPROPVAL_FU_TABLE = &H00000004
%DBPROPVAL_FU_CATALOG = &H00000008
%DBPROPVAL_GB_NOT_SUPPORTED = &H00000001
%DBPROPVAL_GB_EQUALS_SELECT = &H00000002
%DBPROPVAL_GB_CONTAINS_SELECT = &H00000004
%DBPROPVAL_GB_NO_RELATION = &H00000008
%DBPROPVAL_HT_DIFFERENT_CATALOGS = &H00000001
%DBPROPVAL_HT_DIFFERENT_PROVIDERS = &H00000002
%DBPROPVAL_IC_UPPER = &H00000001
%DBPROPVAL_IC_LOWER = &H00000002
%DBPROPVAL_IC_SENSITIVE = &H00000004
%DBPROPVAL_IC_MIXED = &H00000008

%DBPROPVAL_LM_NONE = &H00000001
%DBPROPVAL_LM_READ = &H00000002
%DBPROPVAL_LM_INTENT = &H00000004
%DBPROPVAL_LM_RITE = &H00000008

%DBPROPVAL_NP_OKTODO = &H00000001
%DBPROPVAL_NP_ABOUTTODO = &H00000002
%DBPROPVAL_NP_SYNCHAFTER = &H00000004
%DBPROPVAL_NP_FAILEDTODO = &H00000008
%DBPROPVAL_NP_DIDEVENT = &H00000010
%DBPROPVAL_NC_END = &H00000001
%DBPROPVAL_NC_HIGH = &H00000002
%DBPROPVAL_NC_LOW = &H00000004
%DBPROPVAL_NC_START = &H00000008
%DBPROPVAL_OO_BLOB = &H00000001
%DBPROPVAL_OO_IPERSIST = &H00000002
%DBPROPVAL_CB_DELETE = &H00000001
%DBPROPVAL_CB_PRESERVE = &H00000002
%DBPROPVAL_SU_DML_STATEMENTS = &H00000001
%DBPROPVAL_SU_TABLE_DEFINITION = &H00000002
%DBPROPVAL_SU_INDEX_DEFINITION = &H00000004
%DBPROPVAL_SU_PRIVILEGE_DEFINITION = &H00000008
%DBPROPVAL_SQ_CORRELATEDSUBQUERIES = &H00000001
%DBPROPVAL_SQ_COMPARISON = &H00000002
%DBPROPVAL_SQ_EXISTS = &H00000004
%DBPROPVAL_SQ_IN = &H00000008
%DBPROPVAL_SQ_QUANTIFIED = &H00000010
%DBPROPVAL_SS_ISEQUENTIALSTREAM = &H00000001
%DBPROPVAL_SS_ISTREAM = &H00000002
%DBPROPVAL_SS_ISTORAGE = &H00000004
%DBPROPVAL_SS_ILOCKBYTES = &H00000008
%DBPROPVAL_TI_CHAOS = &H00000010
%DBPROPVAL_TI_READUNCOMMITTED = &H00000100
%DBPROPVAL_TI_BROWSE = &H00000100
%DBPROPVAL_TI_CURSORSTABILITY = &H00001000
%DBPROPVAL_TI_READCOMMITTED = &H00001000
%DBPROPVAL_TI_REPEATABLEREAD = &H00010000
%DBPROPVAL_TI_SERIALIZABLE = &H00100000
%DBPROPVAL_TI_ISOLATED = &H00100000
%DBPROPVAL_TR_COMMIT_DC = &H00000001
%DBPROPVAL_TR_COMMIT = &H00000002
%DBPROPVAL_TR_COMMIT_NO = &H00000004
%DBPROPVAL_TR_ABORT_DC = &H00000008
%DBPROPVAL_TR_ABORT = &H00000010
%DBPROPVAL_TR_ABORT_NO = &H00000020
%DBPROPVAL_TR_DONTCARE = &H00000040
%DBPROPVAL_TR_BOTH = &H00000080
%DBPROPVAL_TR_NONE = &H00000100
%DBPROPVAL_TR_OPTIMISTIC = &H00000200
%DBPROPVAL_RT_FREETHREAD = &H00000001
%DBPROPVAL_RT_APTMTTHREAD = &H00000002
%DBPROPVAL_RT_SINGLETHREAD = &H00000004
%DBPROPVAL_UP_CHANGE = &H00000001
%DBPROPVAL_UP_DELETE = &H00000002
%DBPROPVAL_UP_INSERT = &H00000004
%DBPROPVAL_SQL_NONE = &H00000000
%DBPROPVAL_SQL_ODBC_MINIMUM = &H00000001
%DBPROPVAL_SQL_ODBC_CORE = &H00000002
%DBPROPVAL_SQL_ODBC_EXTENDED = &H00000004
%DBPROPVAL_SQL_ANSI89_IEF = &H00000008
%DBPROPVAL_SQL_ANSI92_ENTRY = &H00000010
%DBPROPVAL_SQL_FIPS_TRANSITIONAL = &H00000020
%DBPROPVAL_SQL_ANSI92_INTERMEDIATE = &H00000040
%DBPROPVAL_SQL_ANSI92_FULL = &H00000080
%DBPROPVAL_SQL_ESCAPECLAUSES = &H00000100
%DBPROPVAL_IT_BTREE = &H00000001
%DBPROPVAL_IT_HASH = &H00000002
%DBPROPVAL_IT_CONTENT = &H00000003
%DBPROPVAL_IT_OTHER = &H00000004
%DBPROPVAL_IN_DISALLOWNULL = &H00000001
%DBPROPVAL_IN_IGNORENULL = &H00000002
%DBPROPVAL_IN_IGNOREANYNULL = &H00000004
%DBPROPVAL_TC_NONE = &H00000000
%DBPROPVAL_TC_DML = &H00000001
%DBPROPVAL_TC_DDL_COMMIT = &H00000002
%DBPROPVAL_TC_DDL_IGNORE = &H00000004
%DBPROPVAL_TC_ALL = &H00000008
%DBPROPVAL_NP_OKTODO = &H00000001
%DBPROPVAL_NP_ABOUTTODO = &H00000002
%DBPROPVAL_NP_SYNCHAFTER = &H00000004
%DBPROPVAL_OA_NOTSUPPORTED = &H00000001
%DBPROPVAL_OA_ATEXECUTE = &H00000002
%DBPROPVAL_OA_ATROWRELEASE = &H00000004
%DBPROPVAL_MR_NOTSUPPORTED = &H00000000
%DBPROPVAL_MR_SUPPORTED = &H00000001
%DBPROPVAL_MR_CONCURRENT = &H00000002
%DBPROPVAL_PT_GUID_NAME = &H00000001
%DBPROPVAL_PT_GUID_PROPID = &H00000002
%DBPROPVAL_PT_NAME = &H00000004
%DBPROPVAL_PT_GUID = &H00000008
%DBPROPVAL_PT_PROPID = &H00000010
%DBPROPVAL_PT_PGUID_NAME = &H00000020
%DBPROPVAL_PT_PGUID_PROPID = &H00000040
%DBPROPVAL_NT_SINGLEROW = &H00000001
%DBPROPVAL_NT_MULTIPLEROWS = &H00000002

%DBPROPVAL_ASYNCH_INITIALIZE = &H00000001
%DBPROPVAL_ASYNCH_SEQUENTIALPOPULATION = &H00000002
%DBPROPVAL_ASYNCH_RANDOMPOPULATION = &H00000004
%DBPROPVAL_OP_EQUAL = &H00000001
%DBPROPVAL_OP_RELATIVE = &H00000002
%DBPROPVAL_OP_STRING = &H00000004
%DBPROPVAL_CO_EQUALITY = &H00000001
%DBPROPVAL_CO_STRING = &H00000002
%DBPROPVAL_CO_CASESENSITIVE = &H00000004
%DBPROPVAL_CO_CASEINSENSITIVE = &H00000008

%DBPROPVAL_CO_CONTAINS = &H00000010
%DBPROPVAL_CO_BEGINSWITH = &H00000020
%DBPROPVAL_ASYNCH_BACKGROUNDPOPULATION = &H00000008
%DBPROPVAL_ASYNCH_PREPOPULATE = &H00000010
%DBPROPVAL_ASYNCH_POPULATEONDEMAND = &H00000020
%DBPROPVAL_LM_NONE = &H00000001
%DBPROPVAL_LM_SINGLEROW = &H00000002
%DBPROPVAL_SQL_SUBMINIMUM = &H00000200
%DBPROPVAL_DST_TDP = &H00000001
%DBPROPVAL_DST_MDP = &H00000002
%DBPROPVAL_DST_TDPANDMDP = &H00000003
%MDPROPVAL_AU_UNSUPPORTED = &H00000000
%MDPROPVAL_AU_UNCHANGED = &H00000001
%MDPROPVAL_AU_UNKNOWN = &H00000002
%MDPROPVAL_MF_WITH_CALCMEMBERS = &H00000001
%MDPROPVAL_MF_WITH_NAMEDSETS = &H00000002
%MDPROPVAL_MF_CREATE_CALCMEMBERS = &H00000004
%MDPROPVAL_MF_CREATE_NAMEDSETS = &H00000008
%MDPROPVAL_MF_SCOPE_SESSION = &H00000010
%MDPROPVAL_MF_SCOPE_GLOBAL = &H00000020
%MDPROPVAL_MMF_COUSIN = &H00000001
%MDPROPVAL_MMF_PARALLELPERIOD = &H00000002
%MDPROPVAL_MMF_OPENINGPERIOD = &H00000004
%MDPROPVAL_MMF_CLOSINGPERIOD = &H00000008
%MDPROPVAL_MNF_MEDIAN = &H00000001
%MDPROPVAL_MNF_VAR = &H00000002
%MDPROPVAL_MNF_STDDEV = &H00000004
%MDPROPVAL_MNF_RANK = &H00000008
%MDPROPVAL_MNF_AGGREGATE = &H00000010
%MDPROPVAL_MNF_COVARIANCE = &H00000020
%MDPROPVAL_MNF_CORRELATION = &H00000040
%MDPROPVAL_MNF_LINREGSLOPE = &H00000080
%MDPROPVAL_MNF_LINREGVARIANCE = &H00000100
%MDPROPVAL_MNF_LINREG2 = &H00000200
%MDPROPVAL_MNF_LINREGPOINT = &H00000400
%MDPROPVAL_MNF_DRILLDOWNLEVEL = &H00000800
%MDPROPVAL_MNF_DRILLDOWNMEMBERTOP = &H00001000
%MDPROPVAL_MNF_DRILLDOWNMEMBERBOTTOM = &H00002000
%MDPROPVAL_MNF_DRILLDOWNLEVELTOP = &H00004000
%MDPROPVAL_MNF_DRILLDOWNLEVELBOTTOM = &H00008000
%MDPROPVAL_MNF_DRILLUPMEMBER = &H00010000
%MDPROPVAL_MNF_DRILLUPLEVEL = &H00020000
%MDPROPVAL_MMF_COUSIN = &H00000001
%MDPROPVAL_MMF_PARALLELPERIOD = &H00000002
%MDPROPVAL_MMF_OPENINGPERIOD = &H00000004
%MDPROPVAL_MMF_CLOSINGPERIOD = &H00000008
%MDPROPVAL_MSF_TOPPERCENT = &H00000001
%MDPROPVAL_MSF_BOTTOMPERCENT = &H00000002
%MDPROPVAL_MSF_TOPSUM = &H00000004
%MDPROPVAL_MSF_BOTTOMSUM = &H00000008
%MDPROPVAL_MSF_PERIODSTODATE = &H00000010
%MDPROPVAL_MSF_LASTPERIODS = &H00000020
%MDPROPVAL_MSF_YTD = &H00000040
%MDPROPVAL_MSF_QTD = &H00000080
%MDPROPVAL_MSF_MTD = &H00000100
%MDPROPVAL_MSF_WTD = &H00000200
%MDPROPVAL_MSF_DRILLDOWNMEMBBER = &H00000400
%MDPROPVAL_MSF_DRILLDOWNLEVEL = &H00000800
%MDPROPVAL_MSF_DRILLDOWNMEMBERTOP = &H00001000
%MDPROPVAL_MSF_DRILLDOWNMEMBERBOTTOM = &H00002000
%MDPROPVAL_MSF_DRILLDOWNLEVELTOP = &H00004000
%MDPROPVAL_MSF_DRILLDOWNLEVELBOTTOM = &H00008000
%MDPROPVAL_MSF_DRILLUPMEMBER = &H00010000
%MDPROPVAL_MSF_DRILLUPLEVEL = &H00020000
%MDPROPVAL_MSF_TOGGLEDRILLSTATE = &H00040000

' // values FOR MDPROP_MDX_DESCFLAGS
%MDPROPVAL_MD_SELF = &H00000001
%MDPROPVAL_MD_BEFORE = &H00000002
%MDPROPVAL_MD_AFTER = &H00000004

' // values FOR MDPROP_MDX_STRING_COMPOP
%MDPROPVAL_MSC_LESSTHAN = &H00000001
%MDPROPVAL_MSC_GREATERTHAN = &H00000002
%MDPROPVAL_MSC_LESSTHANEQUAL = &H00000004
%MDPROPVAL_MSC_GREATERTHANEQUAL = &H00000008
%MDPROPVAL_MC_SINGLECASE = &H00000001
%MDPROPVAL_MC_SEARCHEDCASE = &H00000002
%MDPROPVAL_MOQ_OUTERREFERENCE = &H00000001
%MDPROPVAL_MOQ_DATASOURCE_CUBE = &H00000001
%MDPROPVAL_MOQ_CATALOG_CUBE = &H00000002
%MDPROPVAL_MOQ_SCHEMA_CUBE = &H00000004
%MDPROPVAL_MOQ_CUBE_DIM = &H00000008
%MDPROPVAL_MOQ_DIM_HIER = &H00000010
%MDPROPVAL_MOQ_DIMHIER_LEVEL = &H00000020
%MDPROPVAL_MOQ_LEVEL_MEMBER = &H00000040
%MDPROPVAL_MOQ_MEMBER_MEMBER = &H00000080
%MDPROPVAL_FS_FULL_SUPPORT = &H00000001
%MDPROPVAL_FS_GENERATED_COLUMN = &H00000002
%MDPROPVAL_FS_GENERATED_DIMENSION = &H00000003
%MDPROPVAL_FS_NO_SUPPORT = &H00000004
%MDPROPVAL_NL_NAMEDLEVELS = &H00000001
%MDPROPVAL_NL_NUMBEREDLEVELS = &H00000002
%MDPROPVAL_MJC_SINGLECUBE = &H00000001
%MDPROPVAL_MJC_MULTICUBES = &H00000002
%MDPROPVAL_MJC_IMPLICITCUBE = &H00000004
%MDPROPVAL_RR_NORANGEROWSET = &H00000001
%MDPROPVAL_RR_READONLY = &H00000002
%MDPROPVAL_RR_UPDATE = &H00000004
%MDPROPVAL_MS_MULTIPLETUPLES = &H00000001
%MDPROPVAL_MS_SINGLETUPLE = &H00000002
%DBPROPVAL_AO_SEQUENTIAL = &H00000000
%DBPROPVAL_AO_SEQUENTIALSTORAGEOBJECTS = &H00000001
%DBPROPVAL_AO_RANDOM = &H00000002
%DBPROPVAL_BD_ROWSET = &H00000000
%DBPROPVAL_BD_INTRANSACTION = &H00000001
%DBPROPVAL_BD_XTRANSACTION = &H00000002
%DBPROPVAL_BD_REORGANIZATION = &H00000003

%BMK_DURABILITY_ROWSET = %DBPROPVAL_BD_ROWSET
%BMK_DURABILITY_INTRANSACTION = %DBPROPVAL_BD_INTRANSACTION
%BMK_DURABILITY_XTRANSACTION = %DBPROPVAL_BD_XTRANSACTION
%BMK_DURABILITY_REORGANIZATION = %DBPROPVAL_BD_REORGANIZATION

%DBPROPVAL_BO_NOLOG = &H00000000
%DBPROPVAL_BO_NOINDEXUPDATE = &H00000001
%DBPROPVAL_BO_REFINTEGRITY = &H00000002

%OF_READ = &H00000000
%OF_WRITE = &H00000001
%OF_READWRITE = &H00000002
%OF_SHARE_COMPAT = &H00000000
%OF_SHARE_EXCLUSIVE = &H00000010
%OF_SHARE_DENY_WRITE = &H00000020
%OF_SHARE_DENY_READ = &H00000030
%OF_SHARE_DENY_NONE = &H00000040
%OF_PARSE = &H00000100
%OF_DELETE = &H00000200
%OF_VERIFY = &H00000400
%OF_CANCEL = &H00000800
%OF_CREATE = &H00001000
%OF_PROMPT = &H00002000
%OF_EXIST = &H00004000
%OF_REOPEN = &H00008000

%DBPROPVAL_STGM_READ = %OF_READ
%DBPROPVAL_STGM_WRITE = %OF_WRITE
%DBPROPVAL_STGM_READWRITE = %OF_READWRITE
%DBPROPVAL_STGM_SHARE_DENY_NONE = %OF_SHARE_DENY_NONE
%DBPROPVAL_STGM_SHARE_DENY_READ = %OF_SHARE_DENY_READ
%DBPROPVAL_STGM_SHARE_DENY_WRITE = %OF_SHARE_DENY_WRITE
%DBPROPVAL_STGM_SHARE_EXCLUSIVE = %OF_SHARE_EXCLUSIVE

%DBPROPVAL_STGM_DIRECT = &H00010000
%DBPROPVAL_STGM_TRANSACTED = &H00020000
%DBPROPVAL_STGM_CREATE = %OF_CREATE
%DBPROPVAL_STGM_CONVERT = &H00040000
%DBPROPVAL_STGM_FAILIFTHERE = &H00080000
%DBPROPVAL_STGM_PRIORITY = &H00100000
%DBPROPVAL_STGM_DELETEONRELEASE = &H00200000
%DBPROPVAL_GB_COLLATE = &H00000010
%DBPROPVAL_CS_UNINITIALIZED = &H00000000
%DBPROPVAL_CS_INITIALIZED = &H00000001
%DBPROPVAL_CS_COMMUNICATIONFAILURE = &H00000002
%DBPROPVAL_RD_RESETALL = &Hffffffff
%DBPROPVAL_OS_RESOURCEPOOLING = &H00000001
%DBPROPVAL_OS_TXNENLISTMENT = &H00000002
%DBPROPVAL_OS_CLIENTCURSOR = &H00000004
%DBPROPVAL_OS_ENABLEALL = &Hffffffff
%DBPROPVAL_BI_CROSSROWSET = &H00000001

%DB_IMP_LEVEL_ANONYMOUS = &H00
%DB_IMP_LEVEL_IDENTIFY = &H01
%DB_IMP_LEVEL_IMPERSONATE = &H02
%DB_IMP_LEVEL_DELEGATE = &H03
%DBPROMPT_PROMPT = &H01
%DBPROMPT_COMPLETE = &H02
%DBPROMPT_COMPLETEREQUIRED = &H03
%DBPROMPT_NOPROMPT = &H04
%DB_PROT_LEVEL_NONE = &H00
%DB_PROT_LEVEL_CONNECT = &H01
%DB_PROT_LEVEL_CALL = &H02
%DB_PROT_LEVEL_PKT = &H03
%DB_PROT_LEVEL_PKT_INTEGRITY = &H04
%DB_PROT_LEVEL_PKT_PRIVACY = &H05
%DB_MODE_READ = &H01
%DB_MODE_WRITE = &H02
%DB_MODE_READWRITE = &H03
%DB_MODE_SHARE_DENY_READ = &H04
%DB_MODE_SHARE_DENY_WRITE = &H08
%DB_MODE_SHARE_EXCLUSIVE = &H0c
%DB_MODE_SHARE_DENY_NONE = &H10
%DBCOMPUTEMODE_COMPUTED = &H01
%DBCOMPUTEMODE_DYNAMIC = &H02
%DBCOMPUTEMODE_NOTCOMPUTED = &H03
%DBPROPVAL_DF_INITIALLY_DEFERRED = &H01
%DBPROPVAL_DF_INITIALLY_IMMEDIATE = &H02
%DBPROPVAL_DF_NOT_DEFERRABLE = &H03
 

 

DBPROPFLAGSENUM

 

%DBPROPFLAGS_NOTSUPPORTED = 0
%DBPROPFLAGS_COLUMN = &H1
%DBPROPFLAGS_DATASOURCE = &H2
%DBPROPFLAGS_DATASOURCECREATE = &H4
%DBPROPFLAGS_DATASOURCEINFO = &H8
%DBPROPFLAGS_DBINIT = &H10
%DBPROPFLAGS_INDEX = &H20
%DBPROPFLAGS_ROWSET = &H40
%DBPROPFLAGS_TABLE = &H80
%DBPROPFLAGS_COLUMNOK = &H100
%DBPROPFLAGS_READ = &H200
%DBPROPFLAGS_WRITE = &H400
%DBPROPFLAGS_REQUIRED = &H800
%DBPROPFLAGS_SESSION = &H1000

 

 

DBPROPFLAGSENUM21

 

%DBPROPFLAGS_TRUSTEE = &H2000

 

 

DBPROPOPTIONSENUM

 

%DBPROPOPTIONS_REQUIRED = 0
%DBPROPOPTIONS_SETIFCHEAP = &H1

'// DBPROPOPTIONS_SETIFCHEAP is deprecated; use DBPROPOPTIONS_OPTIONAL instead.
%DBPROPOPTIONS_OPTIONAL = &H1

 

 

DBPROPSTATUSENUM

 

%DBPROPSTATUS_OK = 0
%DBPROPSTATUS_NOTSUPPORTED = 1
%DBPROPSTATUS_BADVALUE = 2
%DBPROPSTATUS_BADOPTION = 3
%DBPROPSTATUS_BADCOLUMN = 4
%DBPROPSTATUS_NOTALLSETTABLE = 5
%DBPROPSTATUS_NOTSETTABLE = 6
%DBPROPSTATUS_NOTSET = 7
%DBPROPSTATUS_CONFLICTING = 8

 

 

DBPROPSTATUSENUM21

 

%DBPROPSTATUS_NOTAVAILAVLE = 9

 

 

DBREASONENUM

 

%DBREASON_ROWSET_FETCHPOSITIONCHANGE = 0
%DBREASON_ROWSET_RELEASE = %DBREASON_ROWSET_FETCHPOSITIONCHANGE + 1
%DBREASON_COLUMN_SET = %DBREASON_ROWSET_RELEASE + 1
%DBREASON_COLUMN_RECALCULATED = %DBREASON_COLUMN_SET + 1
%DBREASON_ROW_ACTIVATE = %DBREASON_COLUMN_RECALCULATED + 1
%DBREASON_ROW_RELEASE = %DBREASON_ROW_ACTIVATE + 1
%DBREASON_ROW_DELETE = %DBREASON_ROW_RELEASE + 1
%DBREASON_ROW_FIRSTCHANGE = %DBREASON_ROW_DELETE + 1
%DBREASON_ROW_INSERT = %DBREASON_ROW_FIRSTCHANGE + 1
%DBREASON_ROW_RESYNCH = %DBREASON_ROW_INSERT + 1
%DBREASON_ROW_UNDOCHANGE = %DBREASON_ROW_RESYNCH + 1
%DBREASON_ROW_UNDOINSERT = %DBREASON_ROW_UNDOCHANGE + 1
%DBREASON_ROW_UNDODELETE = %DBREASON_ROW_UNDOINSERT + 1
%DBREASON_ROW_UPDATE = %DBREASON_ROW_UNDODELETE + 1
%DBREASON_ROWSET_CHANGED = %DBREASON_ROW_UPDATE + 1

 

 

DBREASONENUM15

 

%DBREASON_ROWPOSITION_CHANGED = %DBREASON_ROWSET_CHANGED + 1
%DBREASON_ROWPOSITION_CHAPTERCHANGED = %DBREASON_ROWPOSITION_CHANGED + 1
%DBREASON_ROWPOSITION_CLEARED = %DBREASON_ROWPOSITION_CHAPTERCHANGED + 1
%DBREASON_ROW_ASYNCHINSERT = %DBREASON_ROWPOSITION_CLEARED + 1

 

 

DBREASONENUM25

 

%DBREASON_ROWSET_ROWSADDED = %DBREASON_ROW_ASYNCHINSERT + 1
%DBREASON_ROWSET_POPULATIONCOMPLETE = %DBREASON_ROWSET_ROWSADDED + 1
%DBREASON_ROWSET_POPULATIONSTOPPED = %DBREASON_ROWSET_POPULATIONCOMPLETE + 1

 

 

DBRESOURCEKINDENUM

 

%DBRESOURCE_INVALID = 0
%DBRESOURCE_TOTAL = 1
%DBRESOURCE_CPU = 2
%DBRESOURCE_MEMORY = 3
%DBRESOURCE_DISK = 4
%DBRESOURCE_NETWORK = 5
%DBRESOURCE_RESPONSE = 6
%DBRESOURCE_ROWS = 7
%DBRESOURCE_OTHER = 8

 

 

DBROWSERSTATUSENUM

 

%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

 

 

DBROWSERSTATUSENUM20

 

%BROWSTATUS_S_NOCHANGE = 20

 

 

DBSORTENUM

 

%DBSORT_ASCENDING = 0
%DBSORT_DESCENDING = %DBSORT_ASCENDING + 1

 

 

DBSOURCETYPEENUM

 

%DBSOURCETYPE_DATASOURCE = 1
%DBSOURCETYPE_ENUMERATOR = 2

 

 

DBSOURCETYPEENUM20

 

%DBSOURCETYPE_DATASOURCE_TDP = 1
%DBSOURCETYPE_DATASOURCE_MDP = 3

 

 

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

 

 

DBSTATUSENUM20

 

%MDSTATUS_S_CELLEMPTY = 14
%DBSTATUS_S_IGNORE = 15

 

 

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 = &H2000
%DBTYPE_BYREF = &H4000
%DBTYPE_I1 = 16
%DBTYPE_UI2 = 18
%DBTYPE_UI4 = 19
%DBTYPE_I8 = 20
%DBTYPE_UI8 = 21
%DBTYPE_GUID = 72
%DBTYPE_VECTOR = &H1000
%DBTYPE_RESERVED = &H8000
%DBTYPE_BYTES = 128
%DBTYPE_STR = 129
%DBTYPE_WSTR = 130
%DBTYPE_NUMERIC = 131
%DBTYPE_UDT = 132
%DBTYPE_DBDATE = 133
%DBTYPE_DBTIME = 134
%DBTYPE_DBTIMESTAMP = 135

 

 

DBTYPEENUM15

 

%DBTYPE_HCHAPTER = 136

 

 

DBTYPEENUM20

 

%DBTYPE_FILETIME = 64
%DBTYPE_DBFILETIME = 137
%DBTYPE_PROPVARIANT = 138
%DBTYPE_VARNUMERIC = 139

 

 

DBVALUEKINDENUM

 

%DBVALUEKIND_BYGUID = 256
%DBVALUEKIND_COLDESC = %DBVALUEKIND_BYGUID + 1
%DBVALUEKIND_ID = %DBVALUEKIND_COLDESC + 1
%DBVALUEKIND_CONTENT = %DBVALUEKIND_ID + 1
%DBVALUEKIND_CONTENTVECTOR = %DBVALUEKIND_CONTENT + 1
%DBVALUEKIND_GROUPINFO = %DBVALUEKIND_CONTENTVECTOR + 1
%DBVALUEKIND_PARAMETER = %DBVALUEKIND_GROUPINFO + 1
%DBVALUEKIND_PROPERTY = %DBVALUEKIND_PARAMETER + 1
%DBVALUEKIND_SETFUNC = %DBVALUEKIND_PROPERTY + 1
%DBVALUEKIND_SORTINFO = %DBVALUEKIND_SETFUNC + 1
%DBVALUEKIND_TEXT = %DBVALUEKIND_SORTINFO + 1
%DBVALUEKIND_COMMAND = %DBVALUEKIND_TEXT + 1
%DBVALUEKIND_MONIKER = %DBVALUEKIND_COMMAND + 1
%DBVALUEKIND_ROWSET = %DBVALUEKIND_MONIKER + 1
%DBVALUEKIND_LIKE = %DBVALUEKIND_ROWSET + 1
%DBVALUEKIND_CONTENTPROXIMITY = %DBVALUEKIND_LIKE + 1
%DBVALUEKIND_IDISPATCH = 9
%DBVALUEKIND_IUNKNOWN = 13
%DBVALUEKIND_EMPTY = 0
%DBVALUEKIND_NULL = 1
%DBVALUEKIND_I2 = 2
%DBVALUEKIND_I4 = 3
%DBVALUEKIND_R4 = 4
%DBVALUEKIND_R8 = 5
%DBVALUEKIND_CY = 6
%DBVALUEKIND_DATE = 7
%DBVALUEKIND_BSTR = 8
%DBVALUEKIND_ERROR = 10
%DBVALUEKIND_BOOL = 11
%DBVALUEKIND_VARIANT = 12
%DBVALUEKIND_VECTOR = &H1000
%DBVALUEKIND_ARRAY = &H2000
%DBVALUEKIND_BYREF = &H4000
%DBVALUEKIND_I1 = 16
%DBVALUEKIND_UI1 = 17
%DBVALUEKIND_UI2 = 18
%DBVALUEKIND_UI4 = %DBVALUEKIND_UI2 + 1
%DBVALUEKIND_I8 = %DBVALUEKIND_UI4 + 1
%DBVALUEKIND_UI8 = %DBVALUEKIND_I8 + 1
%DBVALUEKIND_GUID = 72
%DBVALUEKIND_BYTES = 128
%DBVALUEKIND_STR = 129
%DBVALUEKIND_WSTR = 130
%DBVALUEKIND_NUMERIC = 131
%DBVALUEKIND_DBDATE = 133
%DBVALUEKIND_DBTIME = 134
%DBVALUEKIND_DBTIMESTAMP = 135
 

 

DCINFOTYPEENUM

 

%DCINFOTYPE_VERSION = 1

 

 

OLEDBErr Enumeration

 

%S_OK = 0 ' &H0
%S_FALSE = 1 ' &H1
%E_FAIL = -2147467259 ' &H80004005
%E_NOTIMPL = -2147467263 ' &H80004001
%E_UNEXPECTED = -2147418113 ' &H8000FFFF
%E_INVALIDARG = -2147024809 ' &H80070057
%E_OUTOFMEMORY = -2147024882 ' &H8007000E
%E_NOINTERFACE = -2147467262 ' &H80004002
%DB_E_BADACCESSORHANDLE = -2147217920 ' &H80040E00
%DB_E_ROWLIMITEXCEEDED = -2147217919 ' &H80040E01
%DB_E_READONLYACCESSOR = -2147217918 ' &H80040E02
%DB_E_SCHEMAVIOLATION = -2147217917 ' &H80040E03
%DB_E_BADROWHANDLE = -2147217916 ' &H80040E04
%DB_E_OBJECTOPEN = -2147217915 ' &H80040E05
%DB_E_BADCHAPTER = -2147217914 ' &H80040E06
%DB_E_CANTCONVERTVALUE = -2147217913 ' &H80040E07
%DB_E_BADBINDINFO = -2147217912 ' &H80040E08
%DB_SEC_E_PERMISSIONDENIED = -2147217911 ' &H80040E09
%DB_E_NOTAREFERENCECOLUMN = -2147217910 ' &H80040E0A
%DB_E_LIMITREJECTED = -2147217909 ' &H80040E0B
%DB_E_NOCOMMAND = -2147217908 ' &H80040E0C
%DB_E_COSTLIMIT = -2147217907 ' &H80040E0D
%DB_E_BADBOOKMARK = -2147217906 ' &H80040E0E
%DB_E_BADLOCKMODE = -2147217905 ' &H80040E0F
%DB_E_PARAMNOTOPTIONAL = -2147217904 ' &H80040E10
%DB_E_BADCOLUMNID = -2147217903 ' &H80040E11
%DB_E_BADRATIO = -2147217902 ' &H80040E12
%DB_E_BADVALUES = -2147217901 ' &H80040E13
%DB_E_ERRORSINCOMMAND = -2147217900 ' &H80040E14
%DB_E_CANTCANCEL = -2147217899 ' &H80040E15
%DB_E_DIALECTNOTSUPPORTED = -2147217898 ' &H80040E16
%DB_E_DUPLICATEDATASOURCE = -2147217897 ' &H80040E17
%DB_E_CANNOTRESTART = -2147217896 ' &H80040E18
%DB_E_NOTFOUND = -2147217895 ' &H80040E19
%DB_E_NEWLYINSERTED = -2147217893 ' &H80040E1B
%DB_E_CANNOTFREE = -2147217894 ' &H80040E1A
%DB_E_GOALREJECTED = -2147217892 ' &H80040E1C
%DB_E_UNSUPPORTEDCONVERSION = -2147217891 ' &H80040E1D
%DB_E_BADSTARTPOSITION = -2147217890 ' &H80040E1E
%DB_E_NOQUERY = -2147217889 ' &H80040E1F
%DB_E_NOTREENTRANT = -2147217888 ' &H80040E20
%DB_E_ERRORSOCCURRED = -2147217887 ' &H80040E21
%DB_E_NOAGGREGATION = -2147217886 ' &H80040E22
%DB_E_DELETEDROW = -2147217885 ' &H80040E23
%DB_E_CANTFETCHBACKWARDS = -2147217884 ' &H80040E24
%DB_E_ROWSNOTRELEASED = -2147217883 ' &H80040E25
%DB_E_BADSTORAGEFLAG = -2147217882 ' &H80040E26
%DB_E_BADCOMPAREOP = -2147217881 ' &H80040E27
%DB_E_BADSTATUSVALUE = -2147217880 ' &H80040E28
%DB_E_CANTSCROLLBACKWARDS = -2147217879 ' &H80040E29
%DB_E_BADREGIONHANDLE = -2147217878 ' &H80040E2A
%DB_E_NONCONTIGUOUSRANGE = -2147217877 ' &H80040E2B
%DB_E_INVALIDTRANSITION = -2147217876 ' &H80040E2C
%DB_E_NOTASUBREGION = -2147217875 ' &H80040E2D
%DB_E_MULTIPLESTATEMENTS = -2147217874 ' &H80040E2E
%DB_E_INTEGRITYVIOLATION = -2147217873 ' &H80040E2F
%DB_E_BADTYPENAME = -2147217872 ' &H80040E30
%DB_E_ABORTLIMITREACHED = -2147217871 ' &H80040E31
%DB_E_ROWSETINCOMMAND = -2147217870 ' &H80040E32
%DB_E_CANTTRANSLATE = -2147217869 ' &H80040E33
%DB_E_DUPLICATEINDEXID = -2147217868 ' &H80040E34
%DB_E_NOINDEX = -2147217867 ' &H80040E35
%DB_E_INDEXINUSE = -2147217866 ' &H80040E36
%DB_E_NOTABLE = -2147217865 ' &H80040E37
%DB_E_CONCURRENCYVIOLATION = -2147217864 ' &H80040E38
%DB_E_BADCOPY = -2147217863 ' &H80040E39
%DB_E_BADPRECISION = -2147217862 ' &H80040E3A
%DB_E_BADSCALE = -2147217861 ' &H80040E3B
%DB_E_BADTABLEID = -2147217860 ' &H80040E3C
%DB_E_BADTYPE = -2147217859 ' &H80040E3D
%DB_E_DUPLICATECOLUMNID = -2147217858 ' &H80040E3E
%DB_E_DUPLICATETABLEID = -2147217857 ' &H80040E3F
%DB_E_TABLEINUSE = -2147217856 ' &H80040E40
%DB_E_NOLOCALE = -2147217855 ' &H80040E41
%DB_E_BADRECORDNUM = -2147217854 ' &H80040E42
%DB_E_BOOKMARKSKIPPED = -2147217853 ' &H80040E43
%DB_E_BADPROPERTYVALUE = -2147217852 ' &H80040E44
%DB_E_INVALID = -2147217851 ' &H80040E45
%DB_E_BADACCESSORFLAGS = -2147217850 ' &H80040E46
%DB_E_BADSTORAGEFLAGS = -2147217849 ' &H80040E47
%DB_E_BYREFACCESSORNOTSUPPORTED = -2147217848 ' &H80040E48
%DB_E_NULLACCESSORNOTSUPPORTED = -2147217847 ' &H80040E49
%DB_E_NOTPREPARED = -2147217846 ' &H80040E4A
%DB_E_BADACCESSORTYPE = -2147217845 ' &H80040E4B
%DB_E_WRITEONLYACCESSOR = -2147217844 ' &H80040E4C
%DB_SEC_E_AUTH_FAILED = -2147217843 ' &H80040E4D
%DB_E_CANCELED = -2147217842 ' &H80040E4E
%DB_E_CHAPTERNOTRELEASED = -2147217841 ' &H80040E4F
%DB_E_BADSOURCEHANDLE = -2147217840 ' &H80040E50
%DB_E_PARAMUNAVAILABLE = -2147217839 ' &H80040E51
%DB_E_ALREADYINITIALIZED = -2147217838 ' &H80040E52
%DB_E_NOTSUPPORTED = -2147217837 ' &H80040E53
%DB_E_MAXPENDCHANGESEXCEEDED = -2147217836 ' &H80040E54
%DB_E_BADORDINAL = -2147217835 ' &H80040E55
%DB_E_PENDINGCHANGES = -2147217834 ' &H80040E56
%DB_E_DATAOVERFLOW = -2147217833 ' &H80040E57
%DB_E_BADHRESULT = -2147217832 ' &H80040E58
%DB_E_BADLOOKUPID = -2147217831 ' &H80040E59
%DB_E_BADDYNAMICERRORID = -2147217830 ' &H80040E5A
%DB_E_PENDINGINSERT = -2147217829 ' &H80040E5B
%DB_E_BADCONVERTFLAG = -2147217828 ' &H80040E5C
%DB_E_BADPARAMETERNAME = -2147217827 ' &H80040E5D
%DB_E_MULTIPLESTORAGE = -2147217826 ' &H80040E5E
%DB_E_CANTFILTER = -2147217825 ' &H80040E5F
%DB_E_CANTORDER = -2147217824 ' &H80040E60
%DB_E_NOCOLUMN = -2147217819 ' &H80040E65
%DB_E_COMMANDNOTPERSISTED = -2147217817 ' &H80040E67
%DB_E_DUPLICATEID = -2147217816 ' &H80040E68
%DB_E_OBJECTCREATIONLIMITREACHED = -2147217815 ' &H80040E69
%DB_E_BADINDEXID = -2147217806 ' &H80040E72
%DB_E_BADINITSTRING = -2147217805 ' &H80040E73
%DB_E_NOPROVIDERSREGISTERED = -2147217804 ' &H80040E74
%DB_E_MISMATCHEDPROVIDER = -2147217803 ' &H80040E75
%DB_E_BADCOMMANDID = -2147217802 ' &H80040E76
%SEC_E_BADTRUSTEEID = -2147217814 ' &H80040E6A
%SEC_E_NOTRUSTEEID = -2147217813 ' &H80040E6B
%SEC_E_NOMEMBERSHIPSUPPORT = -2147217812 ' &H80040E6C
%SEC_E_INVALIDOBJECT = -2147217811 ' &H80040E6D
%SEC_E_NOOWNER = -2147217810 ' &H80040E6E
%SEC_E_INVALIDACCESSENTRYLIST = -2147217809 ' &H80040E6F
%SEC_E_INVALIDOWNER = -2147217808 ' &H80040E70
%SEC_E_INVALIDACCESSENTRY = -2147217807 ' &H80040E71
%DB_E_BADCONSTRAINTTYPE = -2147217801 ' &H80040E77
%DB_E_BADCONSTRAINTFORM = -2147217800 ' &H80040E78
%DB_E_BADDEFERRABILITY = -2147217799 ' &H80040E79
%DB_E_BADMATCHTYPE = -2147217792 ' &H80040E80
%DB_E_BADUPDATEDELETERULE = -2147217782 ' &H80040E8A
%DB_E_BADCONSTRAINTID = -2147217781 ' &H80040E8B
%DB_E_BADCOMMANDFLAGS = -2147217780 ' &H80040E8C
%DB_E_OBJECTMISMATCH = -2147217779 ' &H80040E8D
%DB_E_NOSOURCEOBJECT = -2147217775 ' &H80040E91
%DB_E_RESOURCELOCKED = -2147217774 ' &H80040E92
%DB_E_NOTCOLLECTION = -2147217773 ' &H80040E93
%DB_E_READONLY = -2147217772 ' &H80040E94
%DB_E_ASYNCNOTSUPPORTED = -2147217771 ' &H80040E95
%DB_E_CANNOTCONNECT = -2147217770 ' &H80040E96
%DB_E_TIMEOUT = -2147217769 ' &H80040E97
%DB_E_RESOURCEEXISTS = -2147217768 ' &H80040E98
%DB_E_RESOURCEOUTOFSCOPE = -2147217778 ' &H80040E8E
%DB_E_DROPRESTRICTED = -2147217776 ' &H80040E90
%DB_E_DUPLICATECONSTRAINTID = -2147217767 ' &H80040E99
%DB_E_OUTOFSPACE = -2147217766 ' &H80040E9A
%DB_SEC_E_SAFEMODE_DENIED = -2147217765 ' &H80040E9B
%DB_E_NOSTATISTIC = -2147217764 ' &H80040E9C
%DB_E_ALTERRESTRICTED = -2147217763 ' &H80040E9D
%DB_E_RESOURCENOTSUPPORTED = -2147217762 ' &H80040E9E
%DB_E_NOCONSTRAINT = -2147217761 ' &H80040E9F
%DB_E_COLUMNUNAVAILABLE = -2147217760 ' &H80040EA0
%DB_S_ROWLIMITEXCEEDED = 265920 ' &H40EC0
%DB_S_COLUMNTYPEMISMATCH = 265921 ' &H40EC1
%DB_S_TYPEINFOOVERRIDDEN = 265922 ' &H40EC2
%DB_S_BOOKMARKSKIPPED = 265923 ' &H40EC3
%DB_S_NONEXTROWSET = 265925 ' &H40EC5
%DB_S_ENDOFROWSET = 265926 ' &H40EC6
%DB_S_COMMANDREEXECUTED = 265927 ' &H40EC7
%DB_S_BUFFERFULL = 265928 ' &H40EC8
%DB_S_NORESULT = 265929 ' &H40EC9
%DB_S_CANTRELEASE = 265930 ' &H40ECA
%DB_S_GOALCHANGED = 265931 ' &H40ECB
%DB_S_UNWANTEDOPERATION = 265932 ' &H40ECC
%DB_S_DIALECTIGNORED = 265933 ' &H40ECD
%DB_S_UNWANTEDPHASE = 265934 ' &H40ECE
%DB_S_UNWANTEDREASON = 265935 ' &H40ECF
%DB_S_ASYNCHRONOUS = 265936 ' &H40ED0
%DB_S_COLUMNSCHANGED = 265937 ' &H40ED1
%DB_S_ERRORSRETURNED = 265938 ' &H40ED2
%DB_S_BADROWHANDLE = 265939 ' &H40ED3
%DB_S_DELETEDROW = 265940 ' &H40ED4
%DB_S_TOOMANYCHANGES = 265941 ' &H40ED5
%DB_S_STOPLIMITREACHED = 265942 ' &H40ED6
%DB_S_LOCKUPGRADED = 265944 ' &H40ED8
%DB_S_PROPERTIESCHANGED = 265945 ' &H40ED9
%DB_S_ERRORSOCCURRED = 265946 ' &H40EDA
%DB_S_PARAMUNAVAILABLE = 265947 ' &H40EDB
%DB_S_MULTIPLECHANGES = 265948 ' &H40EDC
%DB_S_NOTSINGLETON = 265943 ' &H40ED7
%DB_S_NOROWSPECIFICCOLUMNS = 265949 ' &H40EDD
%XACT_S_ASYNC = 315392 ' &H4D000
%XACT_S_ABORTING = 315400 ' &H4D008
%XACT_E_CANTRETAIN = -2147168255 ' &H8004D001
%XACT_E_COMMITFAILED = -2147168254 ' &H8004D002
%XACT_E_ISOLATIONLEVEL = -2147168248 ' &H8004D008
%XACT_E_NOENLIST = -2147168246 ' &H8004D00A
%XACT_E_NOISORETAIN = -2147168245 ' &H8004D00B
%XACT_E_NOTRANSACTION = -2147168242 ' &H8004D00E
%XACT_E_NOTSUPPORTED = -2147168241 ' &H8004D00F
%XACT_E_XTIONEXISTS = -2147168237 ' &H8004D013
%XACT_E_INDOUBT = -2147168234 ' &H8004D016
%XACT_E_NOTIMEOUT = -2147168233 ' &H8004D017
%XACT_E_ALREADYINPROGRESS = -2147168232 ' &H8004D018
%XACT_E_ABORTED = -2147168231 ' &H8004D019
%XACT_E_LOGFULL = -2147168230 ' &H8004D01A
%XACT_E_TMNOTAVAILABLE = -2147168229 ' &H8004D01B
%XACT_E_CONNECTION_DOWN = -2147168228 ' &H8004D01C
%XACT_E_CONNECTION_DENIED = -2147168227 ' &H8004D01D
%XACT_E_CONNECTION_REQUEST_DENIED = -2147168000 ' &H8004D100
 

 

Other constants

 

%DB_NULL_HACCESSOR = &H0 ' // deprecated; use DB_INVALID_HACCESSOR instead
%DB_INVALID_HACCESSOR = &H0

 

%DB_NULL_HROW = &H0

 

%DBWATCHREGION_NULL = 0

 

%DB_NULL_HCHAPTER = &H0
%DB_INVALID_HCHAPTER = &H0 ' // deprecated; use DB_NULL_HCHAPTER instead

 

%STD_BOOKMARKLENGTH = 1
%DB_INVALIDCOLUMN = &Hffffffff

 

%DBPARAMTYPE_INPUT = &H01
%DBPARAMTYPE_INPUTOUTPUT = &H02
%DBPARAMTYPE_OUTPUT = &H03
%DBPARAMTYPE_RETURNVALUE = &H04
%DB_PT_UNKNOWN = &H01
%DB_PT_PROCEDURE = &H02
%DB_PT_FUNCTION = &H03
%DB_REMOTE = &H01
%DB_LOCAL_SHARED = &H02
%DB_LOCAL_EXCLUSIVE = &H03
%DB_COLLATION_ASC = &H01
%DB_COLLATION_DESC = &H02
%DB_UNSEARCHABLE = &H01
%DB_LIKE_ONLY = &H02
%DB_ALL_EXCEPT_LIKE = &H03
%DB_SEARCHABLE = &H04
%MDTREEOP_CHILDREN = &H01
%MDTREEOP_SIBLINGS = &H02
%MDTREEOP_PARENT = &H04
%MDTREEOP_SELF = &H08
%MDTREEOP_DESCENDANTS = &H10
%MDTREEOP_ANCESTORS = &H20
%MD_DIMTYPE_UNKNOWN = &H00
%MD_DIMTYPE_TIME = &H01
%MD_DIMTYPE_MEASURE = &H02
%MD_DIMTYPE_OTHER = &H03
%MDLEVEL_TYPE_UNKNOWN = &H0000
%MDLEVEL_TYPE_REGULAR = &H0000
%MDLEVEL_TYPE_ALL = &H0001
%MDLEVEL_TYPE_CALCULATED = &H0002
%MDLEVEL_TYPE_TIME = &H0004
%MDLEVEL_TYPE_RESERVED1 = &H0008
%MDLEVEL_TYPE_TIME_YEARS = &H0014
%MDLEVEL_TYPE_TIME_HALF_YEAR = &H0024
%MDLEVEL_TYPE_TIME_QUARTERS = &H0044
%MDLEVEL_TYPE_TIME_MONTHS = &H0084
%MDLEVEL_TYPE_TIME_WEEKS = &H0104
%MDLEVEL_TYPE_TIME_DAYS = &H0204
%MDLEVEL_TYPE_TIME_HOURS = &H0304
%MDLEVEL_TYPE_TIME_MINUTES = &H0404
%MDLEVEL_TYPE_TIME_SECONDS = &H0804
%MDLEVEL_TYPE_TIME_UNDEFINED = &H1004
%MDMEASURE_AGGR_UNKNOWN = &H00
%MDMEASURE_AGGR_SUM = &H01
%MDMEASURE_AGGR_COUNT = &H02
%MDMEASURE_AGGR_MIN = &H03
%MDMEASURE_AGGR_MAX = &H04
%MDMEASURE_AGGR_AVG = &H05
%MDMEASURE_AGGR_VAR = &H06
%MDMEASURE_AGGR_STD = &H07
%MDMEASURE_AGGR_CALCULATED = &H7f
%MDPROP_MEMBER = &H01
%MDPROP_CELL = &H02
%MDMEMBER_TYPE_UNKNOWN = &H00
%MDMEMBER_TYPE_REGULAR = &H01
%MDMEMBER_TYPE_ALL = &H02
%MDMEMBER_TYPE_MEASURE = &H03
%MDMEMBER_TYPE_FORMULA = &H04
%MDMEMBER_TYPE_RESERVE1 = &H05
%MDMEMBER_TYPE_RESERVE2 = &H06
%MDMEMBER_TYPE_RESERVE3 = &H07
%MDMEMBER_TYPE_RESERVE4 = &H08
%MDDISPINFO_DRILLED_DOWN = &H00010000
%MDDISPINFO_PARENT_SAME_AS_PREV = &H00020000
 

%GENERATE_METHOD_EXACT = 0
%GENERATE_METHOD_PREFIX = 1
%GENERATE_METHOD_INFLECT = 2

 

%PROPID_QUERY_RANKVECTOR = &H2
%PROPID_QUERY_RANK = &H3
%PROPID_QUERY_HITCOUNT = &H4
%PROPID_QUERY_ALL = &H6
%PROPID_STG_CONTENTS = &H13
%VECTOR_RANK_MIN = 0
%VECTOR_RANK_MAX = 1
%VECTOR_RANK_INNER = 2
%VECTOR_RANK_DICE = 3
%VECTOR_RANK_JACCARD = 4

 

%IDENTIFIER_SDK_MASK = &HF0000000
%IDENTIFIER_SDK_ERROR = &H10000000

 

 

SQLOLEDB

 

The SQLOLEDB provider supports these provider-specific interfaces:

 

Å IRowsetFastLoad

Å ISQLServerErrorInfo

 

 

 


' ********************************************************************************************
' Test for the OLE DB wrapper functions
' Retrieves the ordinal column numbers of a table.
' ********************************************************************************************

#COMPILE EXE
#DIM ALL
#DEBUG ERROR ON
#INCLUDE "Win32Api.inc"
#INCLUDE "TB_ADO28.INC"

$strDbPath = "f:\MyTools\tb_ado28\biblio.mdb"  ' <-- change as needed

' ========================================================================================
' Interface IIDs
' ========================================================================================
$IID_IRowset = GUID$("{0C733A7C-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IColumnsInfo = GUID$("{0C733A11-2A1C-11CE-ADE5-00AA0044773D}")
' ========================================================================================

' ========================================================================================
' DBID structure
' ========================================================================================
UNION DBID_GUID_UNION
   rguid AS GUID
   pguid AS GUID PTR
END UNION

UNION DBID_NAME_UNION
   pwszName AS DWORD
   ulPropid AS DWORD
END UNION

TYPE DBID
   uGuid AS DBID_GUID_UNION
   eKind AS DWORD            ' // DBKIND Enum
   uName AS DBID_NAME_UNION
END TYPE
' ========================================================================================

' ========================================================================================
' DBCOLUMNINFO structure
' ========================================================================================
TYPE DBCOLUMNINFO
   pwszName AS DWORD
   pTypeInfo AS DWORD
   iOrdinal AS DWORD
   dwFlags AS DWORD
   ulColumnSize AS DWORD
   wType AS WORD           ' DBTYPE
   bPrecision AS BYTE
   bScale AS BYTE
   columnid AS DBID
END TYPE
' ========================================================================================

' ========================================================================================
' Returns the current setting of all properties supported by the rowset.
' pcColumns
'   [out] A pointer to memory in which to return the number of columns in the rowset; this
'   number includes the bookmark column, if there is one. 
' prgInfo
'   [out] A pointer to memory in which to return an array of DBCOLUMNINFO structures.
' ppStringsBuffer
'   [out] A pointer to memory in which to return a pointer to storage for all string
'   values (names used either within columnid or for pwszName) within a single allocation block. 
' ========================================================================================
FUNCTION IColumnsInfo_GetColumnInfo (_
  BYVAL pthis AS DWORD PTR _
, BYREF pcColumns AS DWORD _
, BYREF prgInfo AS DWORD _
, BYREF ppStringsBuffer AS DWORD _
) AS LONG

  LOCAL HRESULT AS LONG
  IF ISFALSE pthis THEN FUNCTION = %E_POINTER : EXIT FUNCTION
  CALL DWORD @@pthis[3] USING IColumnsInfo_GetColumnInfo (pthis, pcColumns, prgInfo, ppStringsBuffer) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION
' ========================================================================================

' ********************************************************************************************
' Main
' ********************************************************************************************
FUNCTION PBMAIN

   LOCAL pConnection AS DWORD            ' // Connection interface
   LOCAL ConStr AS STRING                ' // Connection string
   LOCAL SqlStr AS STRING                ' // SQL string
   LOCAL pRecordset AS DWORD             ' // Recordset interface

   ' Creates an ADO connection object
   pConnection = AdoCreateObject("ADODB.Connection")
   IF ISFALSE pConnection THEN EXIT FUNCTION

   ' Connection string - Remember to change the path of the Data Source
   ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $strDbPath

   ' Sets the connection string
   AdoConnection_SetConnectionString(pConnection, Constr)
   ' Opens the database
   AdoConnection_Open(pConnection)
   IF ISTRUE AdoError THEN GOTO Terminate

   ' Creates an ADO recordset object
   pRecordset = AdoCreateObject("ADODB.Recordset")
   IF ISFALSE pRecordset THEN GOTO Terminate

   ' Sets the recordset's active connection
   AdoRecordset_PutRefActiveConnection(pRecordset, pConnection)
   ' Sets the cursor location
   AdoRecordset_SetCursorLocation(pRecordset, %adUseClient)

   ' Opens the recordset
   SqlStr = "Publishers"
   AdoRecordset_Open(pRecordset, SqlStr, pConnection, %adOpenKeyset, %adLockOptimistic, %adCmdTableDirect)
   IF ISTRUE AdoError THEN GOTO Terminate

   ' ------------------------------------------------------------------------------

   LOCAL IID_ADORecordsetConstruction AS GUID
   LOCAL IID_IColumnsInfo AS GUID

   LOCAL hr AS LONG                      ' // HRESULT code
   LOCAL pRC AS DWORD                    ' // ADORecordsetConstruction interface
   LOCAL pRowset AS DWORD                ' // Rowset interface
   LOCAL pCI AS DWORD                    ' // ColumnsInfo interface
   LOCAL prgInfo AS DWORD                ' // Address of the DBCOLUMNINFO array of structures
   LOCAL prgInfoPtr AS DBCOLUMNINFO PTR  ' // Pointer variable to access the DBCOLUMNINFO array of structures
   LOCAL pStringBuffer AS DWORD          ' // Address of the strings
   LOCAL ulNumColumns AS DWORD           ' // Number of columns
   LOCAL i AS LONG                       ' // Loop counter
   LOCAL bstrLen AS LONG                 ' // Length of the string
   LOCAL buffer AS STRING                ' // buffer
   LOCAL iOrdinal AS DWORD               ' // Ordinal
   
   ' IIDs
   IID_ADORecordsetConstruction = $IID_ADORecordsetConstruction
   IID_IColumnsInfo = $IID_IColumnsInfo

   ' Get a reference to the ADORecordsetConstruction interface
   pRC = AdoQueryInterface(pRecordset, IID_ADORecordsetConstruction)
   IF pRC THEN 
      ' Get a reference to the Rowset interface
      pRowset = AdoRecordsetConstruction_GetRowset(pRC)
      ' Release the ADORecordsetConstruction interface (no longer needed)
      AdoRelease pRC
      ' Terminate if pRowset is false
      IF ISFALSE pRowset THEN GOTO Terminate
   END IF

   ' Get a reference to the ColumnsInfo interface
   pCI = AdoQueryInterface(pRowset, IID_IColumnsInfo)

   IF ISTRUE pCI THEN
      ' Retrieve the information about the columns
      hr = IColumnsInfo_GetColumnInfo(pCI, ulNumColumns, prgInfo, pStringBuffer)
      IF hr = %S_OK THEN
         ' Pass the returned address to the pointer variable to access the DBCOLUMNINFO structure
         prgInfoPtr = prgInfo
         ' Show the number of columns (including the one reserved for bookmarks, if any)
         MSGBOX "Columns = " & STR$(ulNumColumns)
         ' If the recordset supports bookmarks, column 0 is reserved for them,
         ' so change the start index from 0 to 1
         FOR i = 0 TO ulNumColumns - 1
            IF ISTRUE @prgInfoPtr[i].pwszName THEN
               buffer = ""
               ' Retrieve the length of the Unicode string
               bstrLen = lstrlenW(BYVAL @prgInfoPtr[i].pwszName)
               IF ISTRUE bstrLen THEN
                  ' Copy it to our string buffer
                  buffer = PEEK$(@prgInfoPtr[i].pwszName, bstrlen * 2)
                  ' Convert it to Ansi
                  buffer = ACODE$(buffer)
               END IF
               ' Retrieve the ordinal number
               iOrdinal = @prgInfoPtr[i].iOrdinal
               ' Show the ordinal number and the name of the column
               MSGBOX "Ordinal =" & STR$(iOrdinal) & " | Name = " & buffer
               ' Free the memory allocated by the server for the name
               CoTaskMemFree @prgInfoPtr[i].pwszName
            END IF
         NEXT
         ' Free the memory allocated by the server for the array of DBCOLUMNINFO structures
         CoTaskMemFree prgInfo
         ' Free the memory allocated by the server for the strings block
         CoTaskMemFree pStringBuffer
      END IF
   END IF

   ' Release the Rowset interface
   AdoRelease pRowset

   ' ------------------------------------------------------------------------------


Terminate:

   ' Close and release the recordset
   IF ISTRUE pRecordset THEN
      AdoRecordset_Close(pRecordset)
      AdoRelease(pRecordset)
   END IF
   ' Close and release the connection
   IF ISTRUE pConnection THEN
      AdoConnection_Close(pConnection)
      AdoRelease(pConnection)
   END IF

END FUNCTION
' ********************************************************************************************
 

 


' ********************************************************************************************
' Test for the OLE DB wrapper functions
' Checks if the recordset supports bookmarks.
' ********************************************************************************************

' SED_PBWIN ' Use the PBWin compiler
#COMPILE EXE
#DIM ALL
#DEBUG ERROR ON
#INCLUDE "Win32Api.inc"
#INCLUDE "TB_ADO28.INC"

$strDbPath = "f:\MyTools\tb_ado28\biblio.mdb"  ' <-- change as needed


' ========================================================================================
' Constants
' ========================================================================================
%DBPROP_BOOKMARKS = &HE
' ========================================================================================

' ========================================================================================
' Interface IIDs
' ========================================================================================
$IID_IRowset = GUID$("{0C733A7C-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetInfo = GUID$("{0C733A55-2A1C-11CE-ADE5-00AA0044773D}")
$DBPROPSET_ROWSET = GUID$("{C8B522BE-5CF3-11CE-ADE5-00AA0044773D}")
' ========================================================================================

' ========================================================================================
' DBID structure
' ========================================================================================
UNION DBID_GUID_UNION
   rguid AS GUID
   pguid AS GUID PTR
END UNION

UNION DBID_NAME_UNION
   pwszName AS DWORD
   ulPropid AS DWORD
END UNION

TYPE DBID
   uGuid AS DBID_GUID_UNION
   eKind AS DWORD            ' // DBKIND Enum
   uName AS DBID_NAME_UNION
END TYPE
' ========================================================================================

' ========================================================================================
' DBDROP structure
' ========================================================================================
TYPE DBPROP
   dwPropertyID AS DWORD ' // DBPROPID
   dwOptions AS DWORD    ' // DBPROPOPTIONS
   dwStatus AS DWORD     ' // DBPROPSTATUS
   colid AS DBID
   vValue AS VARIANTAPI
END TYPE
' ========================================================================================

' ========================================================================================
' DBPROPSET structure
' ========================================================================================
TYPE DBPROPSET
   rgProperties AS DBPROP PTR
   cProperties AS DWORD
   guidPropertySet AS GUID
END TYPE
' ========================================================================================

' ========================================================================================
' DBPROPIDSET structure
' ========================================================================================
TYPE DBPROPIDSET
   rgPropertyIDs AS DWORD
   cPropertyIDs AS DWORD
   guidPropertySet AS GUID
END TYPE
' ========================================================================================

' ========================================================================================
' Returns the current setting of all properties supported by the rowset.
' cPropertyIDSets
'   [in] The number of DBPROPIDSET structures in rgPropertyIDSets.
' rgPropertyIDSets
'   [in] An array of cPropertyIDSets DBPROPIDSET structures.
' pcPropertySets
'   [out] A pointer to memory in which to return the number of DBPROPSET structures
'   returned in *prgPropertySets.
' prgPropertySets
'   [out] A pointer to memory in which to return an array of DBPROPSET structures.
' ========================================================================================
FUNCTION IRowsetInfo_GetProperties ( _
  BYVAL pthis AS DWORD PTR _
, BYVAL cPropertyIDSets AS DWORD _
, BYVAL rgPropertyIDSets AS DWORD _
, BYREF pcPropertySets AS DWORD _
, BYREF prgPropertySets AS DWORD _
) AS LONG

  LOCAL HRESULT AS LONG
  IF ISFALSE pthis THEN FUNCTION = %E_POINTER : EXIT FUNCTION
  CALL DWORD @@pthis[3] USING IRowsetInfo_GetProperties (pthis, cPropertyIDSets, rgPropertyIDSets, pcPropertySets, prgPropertySets) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION
' ========================================================================================

' ========================================================================================
' Checks if the recordset supports bookmarks.
' Returns VARIANT_FALSE (0) or VARIANT_TRUE (-1)
' With the ADO wrapper functions you will use:
' bBookmarks = AdoRecorset_Supports(lpRecordset, %adBookmark).
' ========================================================================================
FUNCTION OLEDB_RowsetSupportsBookmarks (BYVAL pRecordset AS DWORD) AS INTEGER

   LOCAL hr AS LONG                      ' // HRESULT code
   LOCAL pRC AS DWORD                    ' // ADORecordsetConstruction interface
   LOCAL pRowset AS DWORD                ' // Rowset interface
   LOCAL pRI AS DWORD                    ' // RowsetInfo interface
   LOCAL PropIDSet AS DBPROPIDSET        ' // DBPROPIDSET structure
   DIM   rgPropertyIDs(0) AS DWORD       ' // Array of Property IDs
   LOCAL ulPropSet AS DWORD              ' // Number of returned properties
   LOCAL pPropSet AS DWORD               ' // Address of the returned DBPROPSET structure
   LOCAL pPropSetPtr AS DBPROPSET PTR    ' // Pointer variable to access the DBPROPSET structure

   LOCAL IID_ADORecordsetConstruction AS GUID
   LOCAL IID_IRowset AS GUID
   LOCAL IID_IRowsetInfo AS GUID
   LOCAL DBPROPSET_ROWSET AS GUID

   ' IIDs
   IID_ADORecordsetConstruction = $IID_ADORecordsetConstruction
   IID_IRowset = $IID_IRowset
   IID_IRowsetInfo = $IID_IRowsetInfo
   DBPROPSET_ROWSET = $DBPROPSET_ROWSET

   ' Get a reference to the ADORecordsetConstruction interface
   pRC = AdoQueryInterface(pRecordset, IID_ADORecordsetConstruction)
   IF pRC THEN
      ' Get a reference to the Rowset interface
      pRowset = AdoRecordsetConstruction_GetRowset(pRC)
      ' Release the ADORecordsetConstruction interface (no longer needed)
      AdoRelease pRC
      ' Terminate if pRowset is false
      IF ISFALSE pRowset THEN EXIT FUNCTION
   END IF

   ' Query for the RowsetInfo interface
   pRI = AdoQueryInterface(pRowset, IID_IRowsetInfo)
   IF ISTRUE pRI THEN
      ' Fill the DBPROPIDSET structure
      PropIDSet.cPropertyIDs = 1
      PropIDSet.guidPropertySet = DBPROPSET_ROWSET
      rgPropertyIDs(0) = %DBPROP_BOOKMARKS
      PropIDSet.rgPropertyIDs = VARPTR(rgPropertyIDs(0))
      ' Retrieve the property
      hr = IRowsetInfo_GetProperties(pRI, 1, VARPTR(PropIDSet), ulPropSet, pPropSet)
      IF hr = %S_OK AND ISTRUE pPropSet THEN
         ' Pass the returned address to the pointer variable to access the DBPROPSET structure
         pPropSetPtr = pPropSet
         ' If it is a valid address...
         IF ISTRUE @pPropSetPtr.rgProperties THEN
            ' Get the value: VARIANT_FALSE(0) or VARIANT_TRUE (-1)
            IF ISTRUE ulPropSet THEN  ' Must be 1, since we have requested one property
               FUNCTION = @pPropSetPtr.@rgProperties[0].vValue.vd.boolVal
               ' Note: We don't need to clear the variant because it doesn't contain
               ' any reference value. If it did, such a BSTR, we will need to clear it using
               ' VariantClear @pPropSetPtr.@rgProperties[0].vValue to avoid memory leaks.
            END IF
            ' Free the memory allocated by the server for the properties array
            CoTaskMemFree @pPropSetPtr.rgProperties
         END IF
         ' Free the memory allocated by the server for the DBPROPSET structure
         CoTaskMemFree pPropSet
      END IF
      ' Release the RowsetInfo interface
      AdoRelease pRI
   END IF
   ' Release the Rowset interface
   AdoRelease pRowset

END FUNCTION
' ========================================================================================

' ********************************************************************************************
' Main
' ********************************************************************************************
FUNCTION PBMAIN

   LOCAL bBookmarks AS INTEGER           ' // Flag
   LOCAL pConnection AS DWORD            ' // Connection interface
   LOCAL ConStr AS STRING                ' // Connection string
   LOCAL SqlStr AS STRING                ' // SQL string
   LOCAL pRecordset AS DWORD             ' // Recordset interface

   ' Creates an ADO connection object
   pConnection = AdoCreateObject("ADODB.Connection")
   IF ISFALSE pConnection THEN EXIT FUNCTION

   ' Connection string - Remember to change the path of the Data Source
   ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $strDbPath

   ' Sets the connection string
   AdoConnection_SetConnectionString(pConnection, Constr)
   ' Opens the database
   AdoConnection_Open(pConnection)
   IF ISTRUE AdoError THEN GOTO Terminate

   ' Creates an ADO recordset object
   pRecordset = AdoCreateObject("ADODB.Recordset")
   IF ISFALSE pRecordset THEN GOTO Terminate

   ' Sets the recordset's active connection
   AdoRecordset_PutRefActiveConnection(pRecordset, pConnection)
   ' Sets the cursor location
   AdoRecordset_SetCursorLocation(pRecordset, %adUseClient)

   ' Opens the recordset
   SqlStr = "Publishers"
   AdoRecordset_Open(pRecordset, SqlStr, pConnection, %adOpenKeyset, %adLockOptimistic, %adCmdTableDirect)
   IF ISTRUE AdoError THEN GOTO Terminate

   ' Check if the recordset supports boookmars
   bBookmarks = OLEDB_RowsetSupportsBookmarks(pRecordset)
   MSGBOX "Result =" & STR$(bBookmarks)

Terminate:

   ' Close and release the recordset
   IF ISTRUE pRecordset THEN
      AdoRecordset_Close(pRecordset)
      AdoRelease(pRecordset)
   END IF
   ' Close and release the connection
   IF ISTRUE pConnection THEN
      AdoConnection_Close(pConnection)
      AdoRelease(pConnection)
   END IF

END FUNCTION
' ********************************************************************************************
 

 

Page last updated on Wednesday, 02 May 2007 08:39:50 +0200