|
|
|
OLEDB Interfaces |
|
This section contains syntax and semantic information for the OLE DB interfaces.
|
|
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 |
|
|
|
|
|
OLEDB Core Components Interfaces |
|
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
|
|
|
|
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 hyper = 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 |
|
DBBINDING |
|
TYPE DBBINDING |
|
DBCOLUMNDESC |
|
TYPE DBCOLUMNDESC |
|
DBCOLUMNINFO |
|
TYPE DBCOLUMNINFO |
|
DBCOMMANDTREE |
|
UNION DBCOMMANDTREE_VALUE_UNION
TYPE DBCOMMANDTREE |
|
DBCONTENT |
|
TYPE DBCONTENT |
|
DBCONTENTPROXIMITY |
|
%PROXIMITY_UNIT_WORD = 0
TYPE DBCONTENTPROXIMITY |
|
DBCONTENTVECTOR |
|
TYPE DBCONTENTVECTOR |
|
DBCOST |
|
TYPE DBCOST dwUnits
AS DWORD |
|
DBDATE |
|
TYPE DBDATE |
|
DBFAILUREINFO |
|
TYPE DBFAILUREINFO |
|
DBFILETIME |
|
TYPE DBFILETIME |
|
DBGROUPINFO |
|
TYPE DBGROUPINFO |
|
DBID |
|
UNION DBID_GUID_UNION eKind
AS DWORD
' // DBKIND Enum END
TYPE |
|
DBIMPLICITSESSION |
|
TYPE
DBIMPLICITSESSION |
|
DBINDENT |
|
TYPE DBINDENT |
|
DBINDEXCOLUMNDESC |
|
TYPE DBINDEXCOLUMNDESC |
|
DBLIKE |
|
TYPE DBLIKE |
|
DBLIKE |
|
TYPE DBLITERALINFO |
|
DBNUMERIC |
|
TYPE DB_NUMERIC |
|
DBOBJECT |
|
TYPE DBOBJECT |
|
DBPARAMBINDINFO |
|
TYPE DBPARAMBINDINFO |
|
DBPARAMETER |
|
TYPE DBPARAMETER |
|
DBPARAMINFO |
|
TYPE DBPARAMINFO |
|
DBPARAMS |
|
TYPE DBPARAMS |
|
DBPROP |
|
TYPE DBPROP |
|
DBPROPIDSET |
|
TYPE DBPROPIDSET |
|
DBPROPINFO |
|
TYPE DBPROPINFO vtType
AS WORD |
|
DBPROPINFOSET |
|
TYPE DBPROPINFOSET |
|
DBPROPSET |
|
TYPE DBPROPSET |
|
DBROWWATCHRANGE |
|
TYPE DBROWWATCHRANGE hRow
AS DWORD |
|
DBSETFUNC |
|
%DBSETFUNC_NONE = &H0
TYPE DBSETFUNC |
|
DBSORTINFO |
|
TYPE DBSORTINFO |
|
DBTEXT |
|
TYPE DBTEXT |
|
DBTIME |
|
TYPE DBTIME |
|
DBTIMESTAMP |
|
TYPE DBTIMESTAMP |
|
DB_VARNUMERIC |
|
TYPE DB_VARNUMERIC |
|
DBVECTOR |
|
TYPE DBVECTOR |
|
DBYGUID |
|
TYPE DBBYGUID |
|
DCINFO |
|
TYPE DCINFO |
|
DECIMAL |
|
%DECIMAL_NEG = &H80?
TYPE DECIMAL_SIGNSCALE
UNION DECIMAL_LOMID32LO64_UNION
Simplified declaration:
TYPE DECIMAL sign AS BYTE Hi32 AS DWORD Lo64 AS QUAD END TYPE
|
|
ERRORINFO |
|
TYPE ERRORINFO |
|
EXPLICIT_ACCESS |
|
' enum _ACCESS_MODE |
|
MDAXISINFO |
|
%MDAXIS_COLUMNS = &H00000000
TYPE MDAXISINFO |
|
SEC_OBJECT |
|
TYPE SEC_OBJECT |
|
SEC_OBJECT_ELEMENT |
|
TYPE SEC_OBJECT_ELEMENT |
|
TRUSTEE |
|
' enum _TRUSTEE_TYPE |
|
Enumerations |
|
ACCESS_MASKENUM |
|
%PERM_DESIGN = &H800
|
|
DBACCESSORFLAGSENUM |
|
%DBACCESSOR_INVALID = 0
|
|
DBACCESSORFLAGSENUM25 |
|
%DBACCESSOR_INHERITED = &H10
|
|
DBASYNCHOPENENUM |
|
%DBASYNCHOP_OPEN = 0
|
|
DBASYNCHPHASEENUM |
|
%DBASYNCHPHASE_INITIALIZATION
= 0
|
|
DBBINDFLAGENUM |
|
%DBBINDFLAG_HTML = &H1
|
|
DBBINDSTATUSENUM |
|
%DBBINDSTATUS_OK = 0
|
|
DBBOOKMARK |
|
%DBBMK_INVALID = 0
|
|
DBCOLUMNDESCFLAGSENUM |
|
%DBCOLUMNDESCFLAGS_TYPENAME =
&H1
|
|
DBCOLUMNSFLAGSENUM |
|
%DBCOLUMNFLAGS_ISBOOKMARK =
&H1
|
|
DBCOLUMNSFLAGSENUM20 |
|
%BCOLUMNFLAGS_SCALEISNEGATIVE
= &H4000
|
|
DBCOLUMNSFLAGS15ENUM |
|
%DBCOLUMNFLAGS_ISCHAPTER = &H2000
|
|
DBCOMMANDOPENUM |
|
%DBOP_scalar_constant = 0 |
|
DBCOMMMANDPERSISTFLAGENUM |
|
%DBCOMMANDPERSISTFLAG_NOSAVE = &H1
|
|
DBCOMMMANDREUSEENUM |
|
%DBCOMMANDREUSE_NONE = 0
|
|
DBCOMPAREOPSENUM |
|
%DBCOMPAREOPS_LT = 0
|
|
DBCOMPAREOPSENUM20 |
|
%DBCOMPAREOPS_NOTBEGINSWITH =
9
|
|
DBCONVERTFLAGSENUM |
|
%DBCONVERTFLAGS_COLUMN = 0
|
|
DBCONVERTFLAGSENUM20 |
|
%DBCONVERTFLAGS_ISLONG = &H2
|
|
DBCOSTUNITENUM |
|
%DBUNIT_INVALID = 0
|
|
DBDATACONVERTENUM |
|
%DBDATACONVERT_DEFAULT = 0 |
|
DBEVENTPHASEENUM |
|
%DBEVENTPHASE_OKTODO = 0
|
|
DBEXECLIMITSENUM |
|
%DBEXECLIMITS_ABORT = 1
|
|
DBINDEX_COL_ORDERENUM |
|
%DBINDEX_COL_ORDER_ASC = 0
|
|
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. |
|
%DBKIND_GUID_NAME = 0
|
|
DBLITERALENUM |
|
%DBLITERAL_INVALID = 0 |
|
DBLITERALENUM20 |
|
%DBLITERAL_CUBE_NAME = 21
|
|
DBMEMOWNERENUM |
|
%DBMEMOWNER_CLIENTOWNED = 0
|
|
DBPARAMFLAGSENUM |
|
%DBPARAMFLAGS_ISINPUT = &H1
|
|
DBPARAMFLAGSENUM20 |
|
%DBPARAMFLAGS_SCALEISNEGATIVE = &H100
|
|
DBPARAMIOENUM |
|
%DBPARAMIO_NOTPARAM = 0
|
|
DBPARTENUM |
|
%DBPART_INVALID = 0
|
|
DBPROMPTOPTIONSENUM |
|
%DBPROMPTOPTIONS_NONE = 0 |
|
DBPROPENUM |
|
%DBPROP_ABORTPRESERVE = &H2
|
|
DBPROPENUM15 |
|
%DBPROP_FILTEROPS = &Hd0 |
|
DBPROPENUM20 |
|
%DBPROP_IMultipleResults =
&Hd9 |
|
DBPROPENUM21 |
|
%DBPROP_TRUSTEE_USERNAME =
&Hf1 |
|
DBPROPENUM25 |
|
%DBPROP_ICommandCost = &H8d |
|
DBPROPENUMDEPRECATED |
|
%DBPROP_IRowsetExactScroll =
&H9a |
|
DBPROPFLAGSENUM |
|
%DBPROPFLAGS_NOTSUPPORTED = 0
|
|
DBPROPFLAGSENUM21 |
|
%DBPROPFLAGS_TRUSTEE = &H2000
|
|
DBPROPOPTIONSENUM |
|
%DBPROPOPTIONS_REQUIRED = 0 '//
DBPROPOPTIONS_SETIFCHEAP is deprecated; use DBPROPOPTIONS_OPTIONAL instead.
|
|
DBPROPSTATUSENUM |
|
%DBPROPSTATUS_OK = 0
|
|
DBPROPSTATUSENUM21 |
|
%DBPROPSTATUS_NOTAVAILAVLE = 9
|
|
DBREASONENUM |
|
%DBREASON_ROWSET_FETCHPOSITIONCHANGE = 0
|
|
DBREASONENUM15 |
|
%DBREASON_ROWPOSITION_CHANGED
= %DBREASON_ROWSET_CHANGED + 1
|
|
DBREASONENUM25 |
|
%DBREASON_ROWSET_ROWSADDED =
%DBREASON_ROW_ASYNCHINSERT + 1
|
|
DBRESOURCEKINDENUM |
|
%DBRESOURCE_INVALID = 0
|
|
DBROWSERSTATUSENUM |
|
%DBROWSTATUS_S_OK = 0
|
|
DBROWSERSTATUSENUM20 |
|
%BROWSTATUS_S_NOCHANGE = 20
|
|
DBSORTENUM |
|
%DBSORT_ASCENDING = 0
|
|
DBSOURCETYPEENUM |
|
%DBSOURCETYPE_DATASOURCE = 1
|
|
DBSOURCETYPEENUM20 |
|
%DBSOURCETYPE_DATASOURCE_TDP =
1
|
|
DBSTATUSENUM |
|
%DBSTATUS_S_OK = 0
|
|
DBSTATUSENUM20 |
|
%MDSTATUS_S_CELLEMPTY = 14
|
|
DBTYPEENUM |
|
%DBTYPE_EMPTY = 0
|
|
DBTYPEENUM15 |
|
%DBTYPE_HCHAPTER = 136
|
|
DBTYPEENUM20 |
|
%DBTYPE_FILETIME = 64
|
|
DBVALUEKINDENUM |
|
%DBVALUEKIND_BYGUID = 256 |
|
DCINFOTYPEENUM |
|
%DCINFOTYPE_VERSION = 1
|
|
OLEDBErr Enumeration |
|
%S_OK = 0 ' &H0 |
|
Other constants |
|
%DB_NULL_HACCESSOR = &H0
' // deprecated; use DB_INVALID_HACCESSOR instead
%DB_NULL_HROW = &H0
%DBWATCHREGION_NULL = 0
%DB_NULL_HCHAPTER = &H0
%STD_BOOKMARKLENGTH = 1
%DBPARAMTYPE_INPUT = &H01 %GENERATE_METHOD_EXACT = 0
%PROPID_QUERY_RANKVECTOR = &H2
%IDENTIFIER_SDK_MASK =
&HF0000000
|
|
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