Microsoft OLE DB Overview
OLE DB Core Components
Data Conversion Library
IdataConvert
IDataConvert::CanConvert
IDataConvert::DataConvert
IDataConvert::GetConversion
Data Type Conversions Supported by MSDADC.DLL
Row Position Object
IRowPosition::ClearRowPosition
IRowPosition::GetRowPosition
IRowPosition Code Example
IRowPosition::GetRowset
IRowPosition::Initialize
IRowPosition::SetRowPosition
IRowPositionChange
IRowPositionChange::OnRowPositionChange
Root Enumerator Object
IDataInitialize
IDBPromptInitialize
Connection String Syntax
About the OLE DB Documentation
Overview of OLE DB
Access to Diverse Sources
Component Database Management Systems
Consumers and Providers
OLE DB Components
Enumerator Objects
Data Source Objects and Session Objects
Rowset Objects
Data Binding and Accessors
Command Objects
Schema Information
Transaction Management
Local Transactions
Distributed Transactions
Event Notifications
Remote Data Access
Security
Authentication
Authorization
Administration
Overview of Enumerators, Data Source Objects, and Sessions
Enumerators
Enumerating Data Sources and Enumerators
Enumerator States
Data Source Objects
Data Source Object States
Persisting Data Source Objects
Sessions
Overview of Commands
Using Commands
Command States
Multiple Results
Using Parameters
Overview of Rowsets
Creating and Releasing Rowsets
Creating a Rowset with IOpenRowset
Creating a Rowset with a Command
Setting Rowset Properties
Releasing Rowsets
Rows
Fetching Rows
Uniqueness of Rows in the Rowset
Deferred Columns
Column IDs
Bookmarks
Bookmark Types
Comparing Bookmarks
Standard Bookmarks
Invalid Bookmarks
Chapters
Views
Hierarchical Rowsets
One Rowset for Each Hierarchy Level
Navigating Hierarchical Rowsets
Chapter Columns
Chapters and Detail Groupings
Lifetime of Row Handles and Chapters
IColumnsInfo and Hierarchical Rowsets
IColumnsRowset and Hierarchical Rowsets
Setting Properties on Chaptered Rowsets
Notifications and Hierarchical Rowsets
A Rowset Traversal Example
Overview of Updating Data in Rowsets
Changing Data
Immediate vs. Delayed Update Mode
Row States
Visibility of Changes
Visibility of Pending Changes
Visibility of Transmitted Changes
Position of Inserted Rows
Visibility of Other Changes
Resynchronizing Rows
Refreshing Row Values
Overview of Getting and Setting Data
Data Parts
Value
Length
Status
Accessors
Using Accessors
Reference Accessors
Bindings
DBBINDING Structures
Memory Management
Data Transfer Procedures
Getting Data
Setting Data
Overview of BLOBs and OLE Objects
Accessing BLOB Data
Creating BLOB Columns
BLOBs as In-Memory Data
BLOBs as Storage Objects
Limitations of Storage Objects
Lifetime of Storage Objects
Getting and Setting BLOB Data with Storage Objects
Storage Objects and Rowset Update Semantics
Storage Objects and Transactions
IPersist* Objects
Getting and Setting IPersist* Objects
Lifetime of IPersist* Objects
IPersist* Objects, Rowset Update Semantics, and ITransaction
OLE Object Storage Systems
Overview of Indexes
Structure of Index Rowsets
Using Index Rowsets
Index Example
Overview of Notifications
When Notifications Are Sent
States and State Transitions in Providers
States and State Transitions in Consumers
Overview of Data Types in OLE DB
Using Type Indicators in Providers
Type Indicators in an ANSI SQL Provider
Type Indicators in a Microsoft Access Provider
Type Indicators in a Microsoft SQL Server Provider
Using Type Indicators in Consumers
Using Type Indicators When Creating Tables
Using Type Indicators When Getting and Setting Data
String Data
Fixed- and Variable-Length Data Types
Data Type Conversion
Overview of Properties
Property Sets and Property Groups
Property Sets
Property Groups
Setting Property Values
Getting Property Values
Getting Information about Properties
Property Structures and Enumerated Types
DBPROP Structure
DBPROPFLAGS Enumerated Type
DBPROPID Type
DBPROPIDSET Structure
DBPROPINFO Structure
DBPROPINFOSET Structure
DBPROPOPTIONS Enumerated Type
DBPROPSET Structure
DBPROPSTATUS Enumerated Type
Overview of Transactions
Simple Transactions
Commit and Abort Behavior
Nested Transactions
Transaction Objects
Committing or Aborting a Transaction Object
Notification Events
Coordinated Transactions
Isolation Levels
Locking
Overview of Errors
Return Codes
Arrays of Errors
Automation Error Objects
How an Automation Component Returns an Error Object
How an Automation Consumer Retrieves an Error Object
Automation Error Objects and Threads
OLE DB Error Objects
Error Records
Interfaces Used by OLE DB Error Objects
How a Provider Returns an OLE DB Error Object
How a Consumer Retrieves an OLE DB Error Object
OLE DB Error Objects and Threads
Error Lookup Services
Overview of Programming Considerations
Aggregation
Registry Entries
Enumerator Registry Entries
Provider Registry Entries
Error Lookup Service Registry Entries
Provider Threading Models
Single-Threaded Providers and Consumers
Provider Threading Responsibilities
Consumer Threading Responsibilities
Threading and Notifications
Threading and Error Objects
Threading and Transactions
Threading and OLE Objects
Argument Memory
Overview of Asynchronous Processing
Asynchronous Data Source Initialization
Asynchronous Command Execution and Rowset Generation
Asynchronous Rowset Population
Overview of Integrated Indexes
Requesting Integrated Indexes
Using Integrated Indexes
Structure of Integrated Indexes
Fetching Rows
Rowset Order
Next Fetch Position
Range
Updating Index Rows
Visibility of Changes in the Index
Effect of Changes on the Next Fetch Position
Effect of Changes on the Index Range
Accessors
Integrated Indexes and Commands
Integrated Index Example
IAccessor
IAccessor::AddRefAccessor
IAccessor::CreateAccessor
IAccessor::GetBindings
IAccessor::ReleaseAccessor
IAlterIndex
IAlterIndex::AlterIndex
IAlterTable
IAlterTable::AlterColumn
IAlterTable::AlterTable
IChapteredRowset
IChapteredRowset::AddRefChapter
IChapteredRowset::ReleaseChapter
IColumnsInfo
IColumnsInfo::GetColumnInfo
IColumnsInfo::MapColumnIDs
IColumnsRowset
IColumnsRowset::GetAvailableColumns
IColumnsRowset::GetColumnsRowset
ICommand
ICommand::Cancel
ICommand::Execute
ICommand::GetDBSession
ICommandPersist
ICommandPersist::DeleteCommand
ICommandPersist::GetCurrentCommand
ICommandPersist::LoadCommand
ICommandPersist::SaveCommand
ICommandPrepare
ICommandPrepare::Prepare
ICommandPrepare::Unprepare
ICommandProperties
ICommandProperties::GetProperties
ICommandProperties::SetProperties
ICommandText : ICommand
ICommandText::GetCommandText
ICommandText::SetCommandText
ICommandWithParameters
ICommandWithParameters::GetParameterInfo
ICommandWithParameters::MapParameterNames
ICommandWithParameters::SetParameterInfo
IConvertType
IConvertType::CanConvert
IDBAsynchNotify
IDBAsynchNotify::OnLowResource
IDBAsynchNotify::OnProgress
IDBAsynchNotify::OnStop
IDBAsynchStatus
IDBAsynchStatus::Abort
IDBAsynchStatus::GetStatus
IDBCreateCommand
IDBCreateCommand::CreateCommand
IDBCreateSession
IDBCreateSession::CreateSession
IDBDataSourceAdmin
IDBDataSourceAdmin::CreateDataSource
IDBDataSourceAdmin::DestroyDataSource
IDBDataSourceAdmin::GetCreationProperties
IDBDataSourceAdmin::ModifyDataSource
IDBInfo
IDBInfo::GetKeywords
IDBInfo::GetLiteralInfo
IDBInitialize
IDBInitialize::Initialize
IDBInitialize::Uninitialize
IDBProperties
IDBProperties::GetProperties
IDBProperties::GetPropertyInfo
IDBProperties::SetProperties
IDBSchemaRowset
IDBSchemaRowset::GetRowset
IDBSchemaRowset::GetSchemas
IErrorInfo
IErrorInfo::GetDescription
IErrorInfo::GetGUID
IErrorInfo::GetHelpContext
IErrorInfo::GetHelpFile
IErrorInfo::GetSource
IErrorLookup
IErrorLookup::GetErrorDescription
IErrorLookup::GetHelpInfo
IErrorLookup::ReleaseErrors
IErrorRecords
IErrorRecords::AddErrorRecord
IErrorRecords::GetBasicErrorInfo
IErrorRecords::GetCustomErrorObject
IErrorRecords::GetErrorInfo
IErrorRecords::GetErrorParameters
IErrorRecords::GetRecordCount
IGetDataSource
IGetDataSource::GetDataSource
IIndexDefinition
IIndexDefinition::CreateIndex
IIndexDefinition::DropIndex
IMultipleResults
IMultipleResults::GetResult
IOpenRowset
IOpenRowset::OpenRowset
IParentRowset
IParentRowset::GetChildRowset
IRowset
IRowset::AddRefRows
IRowset::GetData
IRowset::GetNextRows
IRowset::ReleaseRows
IRowset::RestartPosition
IRowsetChange
IRowsetChange::DeleteRows
IRowsetChange::InsertRow
IRowsetChange::SetData
IRowsetChapterMember
IRowsetChapterMember::IsRowInChapter
IRowsetFind
IRowsetFind::FindNextRow
IRowsetIdentity
IRowsetIdentity::IsSameRow
IRowsetIndex
IRowsetIndex::GetIndexInfo
IRowsetIndex::Seek
IRowsetIndex::SetRange
IRowsetInfo
IRowsetInfo::GetProperties
IRowsetInfo::GetReferencedRowset
IRowsetInfo::GetSpecification
IRowsetLocate : IRowset
IRowsetLocate::Compare
IRowsetLocate::GetRowsAt
IRowsetLocate::GetRowsByBookmark
IRowsetLocate::Hash
IRowsetNotify
IRowsetNotify::OnFieldChange
IRowsetNotify::OnRowChange
IRowsetNotify::OnRowsetChange
IRowsetRefresh
IRowsetRefresh::GetLastVisibleData
IRowsetRefresh::RefreshVisibleData
IRowsetScroll : IRowsetLocate
IRowsetScroll::GetApproximatePosition
IRowsetScroll::GetRowsAtRatio
IRowsetUpdate : IRowsetChange
IRowsetUpdate::GetOriginalData
IRowsetUpdate::GetPendingRows
IRowsetUpdate::GetRowStatus
IRowsetUpdate::Undo
IRowsetUpdate::Update
IRowsetView
IRowsetView::CreateView
IRowsetView::GetView
ISequentialStream
ISequentialStream : IUnknown
ISequentialStream::Read
ISequentialStream::Write
ISessionProperties
ISessionProperties::GetProperties
ISessionProperties::SetProperties
ISourcesRowset
ISourcesRowset::GetSourcesRowset
ISQLErrorInfo
ISQLErrorInfo::GetSQLInfo
ISupportErrorInfo
ISupportErrorInfo::InterfaceSupportsErrorInfo
ITableDefinition
ITableDefinition::AddColumn
ITableDefinition::CreateTable
ITableDefinition::DropColumn
ITableDefinition::DropTable
ITransaction
ITransaction::Abort
ITransaction::Commit
ITransaction::GetTransactionInfo
ITransactionJoin
ITransactionJoin::GetOptionsObject
ITransactionJoin::JoinTransaction
ITransactionLocal : ITransaction
ITransactionLocal::GetOptionsObject
ITransactionLocal::StartTransaction
ITransactionObject
ITransactionObject::GetTransactionObject
ITransactionOptions
ITransactionOptions::GetOptions
ITransactionOptions::SetOptions
IViewChapter
IViewChapter::GetSpecification
IViewChapter::OpenViewChapter
IViewFilter
IViewFilter::GetFilter
IViewFilter::GetFilterBindings
IViewFilter::SetFilter
IViewRowset
IViewRowset::GetSpecification
IViewRowset::OpenViewRowset
IViewSort
IViewSort::GetSortOrder
IViewSort::SetSortOrder
Overview of Data Types
Type Indicators
Precision of Numeric Data Types
Fixed-Length Data Types
Variable-Length Data Types
Data Type Conversion Rules
Conversion Tables
Conversions Involving Strings
Conversions Involving Numeric Values
Conversions Involving DBTYPE_NUMERIC or DBTYPE_DECIMAL
Conversions Involving VARIANTs
Conversions Involving DBTYPE_BYREF
Conversions Involving DBTYPE_ARRAY
Conversions Involving DBTYPE_VECTOR
Overview of Schema Rowsets
Logical Information Schema Rowsets
Physical Information Schema Rowsets
ASSERTIONS Rowset
CATALOGS Rowset
CHARACTER_SETS Rowset
CHECK_CONSTRAINTS Rowset
COLLATIONS Rowset
COLUMN_DOMAIN_USAGE Rowset
COLUMN_PRIVILEGES Rowset
COLUMNS Rowset
CONSTRAINT_COLUMN_USAGE Rowset
CONSTRAINT_TABLE_USAGE Rowset
FOREIGN_KEYS Rowset
INDEXES Rowset
KEY_COLUMN_USAGE Rowset
PRIMARY_KEYS Rowset
PROCEDURE_COLUMNS Rowset
PROCEDURE_PARAMETERS Rowset
PROCEDURES Rowset
PROVIDER_TYPES Rowset
REFERENTIAL_CONSTRAINTS Rowset
SCHEMATA Rowset
SQL_LANGUAGES Rowset
STATISTICS Rowset
TABLE_CONSTRAINTS Rowset
TABLE_PRIVILEGES Rowset
TABLES Rowset
TABLES_INFO Rowset
TRANSLATIONS Rowset
USAGE_PRIVILEGES Rowset
VIEW_COLUMN_USAGE Rowset
VIEW_TABLE_USAGE Rowset
VIEWS Rowset
Overview of Property Tables
Properties Table (by Property Groups)
Column Properties
Data Source Properties
Data Source Creation Properties
Data Source Information Properties
Index Properties
Initialization Properties
Rowset Properties
Session Properties
Table Properties
Property Requirements Table
Properties Table (Alphabetical)
DBPROP_ABORTPRESERVE
DBPROP_ACCESSORDER
DBPROP_ACTIVESESSIONS
DBPROP_ALTERCOLUMN
DBPROP_APPENDONLY
DBPROP_ASYNCTXNABORT
DBPROP_ASYNCTXNCOMMIT
DBPROP_AUTH_CACHE_AUTHINFO
DBPROP_AUTH_ENCRYPT_PASSWORD
DBPROP_AUTH_INTEGRATED
DBPROP_AUTH_MASK_PASSWORD
DBPROP_AUTH_PASSWORD
DBPROP_AUTH_PERSIST_ENCRYPTED
DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO
DBPROP_AUTH_USERID
DBPROP_BLOCKINGSTORAGEOBJECTS
DBPROP_BOOKMARKS
DBPROP_BOOKMARKSKIPPED
DBPROP_BOOKMARKTYPE
DBPROP_BYREFACCESSORS
DBPROP_CACHEDEFERRED
DBPROP_CANFETCHBACKWARDS
DBPROP_CANHOLDROWS
DBPROP_CANSCROLLBACKWARDS
DBPROP_CATALOGLOCATION
DBPROP_CATALOGTERM
DBPROP_CATALOGUSAGE
DBPROP_CHANGEINSERTEDROWS
DBPROP_COL_AUTOINCREMENT
DBPROP_COL_DEFAULT
DBPROP_COL_DESCRIPTION
DBPROP_COL_FIXEDLENGTH
DBPROP_COL_NULLABLE
DBPROP_COL_PRIMARYKEY
DBPROP_COL_UNIQUE
DBPROP_COLUMNDEFINITION
DBPROP_COLUMNLCID
DBPROP_COLUMNRESTRICT
DBPROP_COMMANDTIMEOUT
DBPROP_COMMITPRESERVE
DBPROP_CONCATNULLBEHAVIOR
DBPROP_CONNECTIONSTATUS
DBPROP_CURRENTCATALOG
DBPROP_DATASOURCENAME
DBPROP_DATASOURCEREADONLY
DBPROP_DBMSNAME
DBPROP_DBMSVER
DBPROP_DEFERRED
DBPROP_DELAYSTORAGEOBJECTS
DBPROP_DSOTHREADMODEL
DBPROP_FILTERCOMPAREOPS
DBPROP_FINDCOMPAREOPS
DBPROP_GROUPBY
DBPROP_HETEROGENEOUSTABLES
DBPROP_IACCESSOR
DBPROP_ICHAPTEREDROWSET
DBPROP_ICOLUMNSINFO
DBPROP_ICOLUMNSROWSET
DBPROP_ICONNECTIONPOINTCONTAINER
DBPROP_ICONVERTTYPE
DBPROP_IDBASYNCHSTATUS
DBPROP_IROWSET
DBPROP_IROWSETCHANGE
DBPROP_IROWSETFIND
DBPROP_IROWSETIDENTITY
DBPROP_IROWSETINDEX
DBPROP_IROWSETINFO
DBPROP_IROWSETLOCATE
DBPROP_IROWSETREFRESH
DBPROP_IROWSETSCROLL
DBPROP_IROWSETUPDATE
DBPROP_IROWSETVIEW
DBPROP_ISUPPORTERRORINFO
DBPROP_IDENTIFIERCASE
DBPROP_ILOCKBYTES
DBPROP_ISEQUENTIALSTREAM
DBPROP_ISTORAGE
DBPROP_ISTREAM
DBPROP_IMMOBILEROWS
DBPROP_INDEX_AUTOUPDATE
DBPROP_INDEX_CLUSTERED
DBPROP_INDEX_FILLFACTOR
DBPROP_INDEX_INITIALSIZE
DBPROP_INDEX_NULLCOLLATION
DBPROP_INDEX_NULLS
DBPROP_INDEX_PRIMARYKEY
DBPROP_INDEX_SORTBOOKMARKS
DBPROP_INDEX_TEMPINDEX
DBPROP_INDEX_TYPE
DBPROP_INDEX_UNIQUE
DBPROP_INIT_ASYNCH
DBPROP_INIT_DATASOURCE
DBPROP_INIT_HWND
DBPROP_INIT_IMPERSONATION_LEVEL
DBPROP_INIT_LCID
DBPROP_INIT_LOCATION
DBPROP_INIT_MODE
DBPROP_INIT_OLEDBSERVICES
DBPROP_INIT_PROMPT
DBPROP_INIT_PROTECTION_LEVEL
DBPROP_INIT_PROVIDERSTRING
DBPROP_INIT_TIMEOUT
DBPROP_LITERALBOOKMARKS
DBPROP_LITERALIDENTITY
DBPROP_LOCKMODE
DBPROP_MAXINDEXSIZE
DBPROP_MAXOPENCHAPTERS
DBPROP_MAXOPENROWS
DBPROP_MAXORSINFILTER
DBPROP_MAXPENDINGROWS
DBPROP_MAXROWS
DBPROP_MAXROWSIZE
DBPROP_MAXROWSIZEINCLUDESBLOB
DBPROP_MAXSORTCOLUMNS
DBPROP_MAXTABLESINSELECT
DBPROP_MAYWRITECOLUMN
DBPROP_MEMORYUSAGE
DBPROP_MULTIPLECONNECTIONS
DBPROP_MULTIPLEPARAMSETS
DBPROP_MULTIPLERESULTS
DBPROP_MULTIPLESTORAGEOBJECTS
DBPROP_MULTITABLEUPDATE
DBPROP_NOTIFICATIONGRANULARITY
DBPROP_NOTIFICATIONPHASES
DBPROP_NOTIFYCOLUMNSET
DBPROP_NOTIFYROWDELETE
DBPROP_NOTIFYROWFIRSTCHANGE
DBPROP_NOTIFYROWINSERT
DBPROP_NOTIFYROWRESYNCH
DBPROP_NOTIFYROWSETRELEASE
DBPROP_NOTIFYROWSETFETCHPOSITIONCHANGE
DBPROP_NOTIFYROWUNDOCHANGE
DBPROP_NOTIFYROWUNDODELETE
DBPROP_NOTIFYROWUNDOINSERT
DBPROP_NOTIFYROWUPDATE
DBPROP_NULLCOLLATION
DBPROP_OLEOBJECTS
DBPROP_ORDERBYCOLUMNSINSELECT
DBPROP_ORDEREDBOOKMARKS
DBPROP_OTHERINSERT
DBPROP_OTHERUPDATEDELETE
DBPROP_OUTPUTPARAMETERAVAILABILITY
DBPROP_OWNINSERT
DBPROP_OWNUPDATEDELETE
DBPROP_PERSISTENTIDTYPE
DBPROP_PREPAREABORTBEHAVIOR
DBPROP_PREPARECOMMITBEHAVIOR
DBPROP_PROCEDURETERM
DBPROP_PROVIDERFRIENDLYNAME
DBPROP_PROVIDERNAME
DBPROP_PROVIDEROLEDBVER
DBPROP_PROVIDERVER
DBPROP_QUICKRESTART
DBPROP_QUOTEDIDENTIFIERCASE
DBPROP_REENTRANTEVENTS
DBPROP_REMOVEDELETED
DBPROP_REPORTMULTIPLECHANGES
DBPROP_RESETDATASOURCE
DBPROP_RETURNPENDINGINSERTS
DBPROP_ROW_BULKOPS
DBPROP_ROWRESTRICT
DBPROP_ROWSET_ASYNCH
DBPROP_ROWSETCONVERSIONSONCOMMAND
DBPROP_ROWTHREADMODEL
DBPROP_SCHEMATERM
DBPROP_SCHEMAUSAGE
DBPROP_SERVERCURSOR
DBPROP_SERVERDATAONINSERT
DBPROP_SESS_AUTOCOMMITISOLEVELS
DBPROP_SORTONINDEX
DBPROP_SQLSUPPORT
DBPROP_STRONGIDENTITY
DBPROP_STRUCTUREDSTORAGE
DBPROP_SUBQUERIES
DBPROP_SUPPORTEDTXNDDL
DBPROP_SUPPORTEDTXNISOLEVELS
DBPROP_SUPPORTEDTXNISORETAIN
DBPROP_SUPPORTEDTXNISORETAIN
DBPROP_TBL_TEMPTABLE
DBPROP_TRANSACTEDOBJECT
DBPROP_UNIQUEROWS
DBPROP_UPDATABILITY
DBPROP_USERNAME
Overview of CoTypes, Structures, and Enumerated Types
OLE DB CoTypes
OLE DB Structures and Enumerated Types
Interface Summary
Glossary
Microsoft OLE DB Overview
Introduction
Summary of New Features
Named Parameter Support
Error Support
Installation Notes
Predefined ODBC Data Sources
Supported Interfaces
Obtaining Data Source Objects
Initialization Properties and .dsn Files
ODBC Provider Properties
Supported Platforms
General Implementation Notes
Interface Implementation Notes
Data Types
Query-Based Updates
Known Limitations
Overview of the OLE DB Provider for Oracle
System Requirements
Data Source Objects
Initialization and Authorization Properties
Sessions
Session Properties
Commands
Command Syntax
Command Parameters
Rowsets
Creating a Rowset with IOpenRowset
Rowset Properties and Behaviors
BLOBs and OLE Objects
Notifications
Data Types
Data Type Mapping in Rowsets and Parameters
Transactions
Supporting Local Transactions
Isolation Levels
Errors
Return Codes
SQL Server OLE DB Provider
System Requirements
Installing the SQL Server OLE DB Provider
Data Source Objects
Initialization and Authorization Properties
Sessions
Session Properties
Persisted Data Source Objects
Commands
Command Syntax
Command Parameters
Preparing Commands
Commands Generating Multiple-Rowset Results
Rowsets
Creating a Rowset with IOpenRowset
Creating Rowsets with ICommand::Execute
Rowset Properties and Behaviors
Rowsets and SQL Server Cursors
Bulk-Copy Rowsets
Enabling a Session for IRowsetFastLoad
IRowsetFastLoad Rowsets
Updating Data in Rowsets
Updating Data in SQL Server Cursors
Resynchronizing Rows
BLOBs and OLE Objects
Getting Large Data
Tables and Indexes
Creating SQL Server Tables
Adding a Column to a SQL Server Table
Removing a Column from a SQL Server Table
Dropping a SQL Server Table
Creating SQL Server Indexes
Dropping a SQL Server Index
Notifications
Data Types
Data Type Mapping in Rowsets and Parameters
Data Type Mapping in ITableDefinition
Transactions
Supporting Local Transactions
Supporting Distributed Transactions
Isolation Levels
Errors
Return Codes
Information in OLE DB Error Interfaces
SQL Server Error Detail
SQLOLEDB Example: Retrieving Error Information
SQL Server Message Results
Interfaces
IRowsetFastLoad
IRowsetFastLoad::Commit
IRowsetFastLoad::InsertRow
ISQLServerErrorInfo
ISQLServerErrorInfo::GetErrorInfo
Schema Rowsets
LINKEDSERVERS Rowset
Schema Rowset Support in SQLOLEDB
Catalog Stored Procedures
General Overview
Components
Notifications
Exposing Data Through OLE DB
ActiveX Data Objects
OLE DB Rowsets
Limitations
Step Summary
Language Differences
Using the Code Samples
Information and Guidelines
Code Sample Information
Information and Guidelines
Code Sample Information
Information and Guidelines
Code Sample Information
Registering Providers
Using the RegisterProvider.reg File
Full Registration
Registration Without an OSP Entry
Registering Multiple Providers
Registration Problems
OSP Language Reference
OLEDBSimpleProvider
getRowCount
getColumnCount
getRWStatus
getVariant
setVariant
deleteRows
insertRows
find
getLocale
isAsync
getEstimatedRows
stopTransfer
addOLEDBSimpleProviderListener
removeOLEDBSimpleProviderListener
OLEDBSimpleProviderListener
aboutToChangeCell
cellChanged
aboutToDeleteRows
deletedRows
aboutToInsertRows
insertedRows
rowsAvailable
transferComplete
IDataSource
getDataMember
getDataMemberCount
getDataMemberName
addDataSourceListener
removeDataSourceListener
IDataSourceListener
dataMemberChanged
dataMemberAdded
dataMemberRemoved
msDataSourceObject
DataSourceListener
File Listing
Redistributing Providers
Supported OLE DB Interfaces
Supported OLE DB Properties
Introduction
SDK Components
System Installation Requirements
Document Conventions
Overview of Consuming Rowsets
Accessing Rowsets with CRowset
Using Bookmarks
Referencing Row Handles
Fetching Rows
Updating the Rowset
Handling Notifications
Overview of Creating a Simple Bound Control
Creating a Simple Control
Example: Creating an Edit Control
Overview of Creating a Complex Bound Control
Creating a Complex Control
Example: Creating a List Box Control
Overview of Migrating ICursor-Based ActiveX Controls to OLE DB
Differences between ICursor-Based and OLE DB ActiveX Controls
Interface Mapping Reference
Overview of Interface Leveling
Consumers
Providers
Overview of API Reference
IRowPosition
IRowPosition::Initialize
IRowPosition::GetRowset
IRowPosition:ClearRowPosition
IRowPosition::SetRowPosition
IRowPosition::GetRowPosition
IRowPositionChange
IRowPositionChange::OnRowPositionChange
IRowsetFind
IRowsetFind::FindNextRow
Cotypes, Structures, and Enumerated Types
IDataSource
IDataSource::getDataMember
IDataSource::getDataMemberCount
IDataSource::getDataMemberName
IDataSource::addDataSourceListener
IDataSource::removeDataSourceListener
IDataSourceListener
IDataSourceListener::dataMemberChanged
IDataSourceListener::dataMemberAdded
IDataSourceListener::dataMemberRemoved
Overview of ActiveX Controls Framework
Using the Framework
Creating an ActiveX Control
Working with Your ActiveX Control
The Persistent State
Implementing Property Pages
String Manipulation
Localization
Additional Information
Wrapper Class Reference
Rowsets
CRowset
GetRowset
GetAccessor
GetRowPosition
GetDataSource
Attach
GetChapter
SetChapter
GetProperties
GetCount
GetExactPosition
GetApproximatePosition
GetRowsAtRatio
CreateAccessor
ReleaseAccessor
AddRefAccessor
GetBindings
GetColumns
GetColumnOrdinals
GetCurrentRow
RestartPosition
GetNextRows
FreeRows
ReleaseRows
AddRefRows
GetData
SetData
DeleteRows
InsertRow
GetOriginalData
GetPendingRows
GetRowStatus
Undo
Update
GetRows Using Bookmark
GetRows Using Bookmark Array
CompareBookmarks
GetRowsetProperties
IsSameRow Using Row Handle
IsSameRow Using Bookmark
CanConvert
GetSelfBookmark
Miscellaneous
Macros
CArray Template Class
CArray Integer
Add to Array
SetAt
InsertAt
DeleteAt
RemoveAll
Attach to Array
SetSize Array
GetSize
GetUpperBound
Item
GetItems
operator[]
IStream
CMemStream
Read
Write
Seek
SetSize Used in IStream
CopyTo
Commit
Revert
LockRegion
UnlockRegion
Stat
Clone
String Handling
String Support
MAKE_MULTIBYTESTRING
ANSI Strings
BSTR
Wide Strings
Bookmarks
Standard Bookmarks
CBookmark Class
IsInvalid
IsBeginning
IsCurrent
IsEnd
IsFirstRow
IsLastRow
IsBookmark
Clear Memory of Bookmark Data
Set
Get
BLOB
ULONG
void
BYTE
Operator== Comparing Bookmarks
operator= Used to Copy Bookmark
Persistence
Constants
class CPersistProperties
CPersistProperties
AddProp
EnablePropSave
Load
Save
IsPropSaved
GetVersionPersisted
Property Pages
Error Handling
String Resources
Macros Used with Property Pages
ShowError
GetControlTag
SetFocusToEdit
Additional Property Support
GetStrings
GetValue
struct COMBOTOGUID
FillAllComboBoxes
FillComboBox
class CCtlPropertyPage
CCtlPropertyPage
IsDirty
SetDirtyFlag
EnableModeless
Advise Using IUnknown
DialogProc
Overridable Functions
InternalQueryInterface
PageDialogProc
OnPropertyChanged
OnPropertyRequestEdit
Additional Data Access Support
COLUMNINFO structure
COLUMNINFO( )
Operator= Used with COLUMNINFO
Clear Memory of Complex Data
Members
ROWSETPROPERTIES structure
Value Data Members
Boolean Flags
Class CBindingsArray
CBindingsArray
AddBindings
ClearID
CopyID
IsSameIDs
IsBmkColumn
InitBinding
Advise Connections
Class CAdviseConnection
CAdviseConnection
Operator = Used with CAdvise Connection
Advise with Notification
Unadvise Any Advise Connection
SetNotifyInterface
GetNotifyInterface
Class CConnectionsArray
CConnectionsArray
Add Advise Connection
Remove
Find
Class CPropNotifySink
CPropNotifySink
IsAdvising
GetPropID
Advise Connection
Unadvise Most Recent Advise Connection
Helpers
AdviseConnect
AdviseDisconnect
Microsoft OLE DB for OLAP Overview
OLE DB for OLAP Programmer's Reference
About This Manual
Audience
Document Conventions (OLE DB for OLAP)
OLE DB for OLAP Overview
Design Goals in This Version
Future Directions
OLE DB for OLAP Concepts
Introduction to OLE DB for OLAP
Enumerating and Initializing OLE DB for OLAP Data Source Objects
Registry Entries
Understanding and Using Multidimensional Schemas
Browsing Metadata
Virtual Cubes
Hypercubes and Multicubes
Browsing Members
Named and Unnamed Levels
Balanced and Ragged Hierarchies
Programming Considerations
Multidimensional Expressions (MDX) and Datasets
Implementation Strategies for Providers
Parts of an MDX Statement
Axis and Slicer Dimensions
Cube and Dataset Example
Establishing Cube Context
Specifying the Contents of an Axis
Specifying Slicer Dimensions
Example Dataset Expression
Name Space and Unique Names
Using the OLE DB Command Object
Delimited Identifiers
Delimited Identifiers Returned from the Provider
Differences in Delimit Characters
Datasets
Dataset Objects for Multidimensional Results
Describing the Axes
Returning Slicer Information
Cell Navigation in a Dataset
Describing and Fetching Cell Data
Stateless Navigation
Postprocessing and New Dataset Specification
Creation of Multiple Datasets
Getting the Command Object from a Dataset
Flattening a Dataset to Produce a Rowset
Flattening Algorithm
Using Measures on the COLUMNS Axis
A More Complex Example
Example Using DIMENSION PROPERTIES
Order of Members in a Flattened Rowset
Getting a Flattened Rowset
Nulls
Lack of Support for Named Levels
Range Rowsets
Updating Cell Data
Data Source Property MDPROP_RANGEROWSET
Update and Delete Semantics
Insert Does Not Mean Anything
Update Dependencies
Visibility of Changes
Advanced MDX
Retrieving Member Properties
Retrieving Cell Properties
Contents of FORMAT_STRING
Contents of FORE_COLOR and BACK_COLOR
Join Compatibility
Empty FROM Clause
Default Hierarchy and Member
Types of Expressions in MDX
Set Value Expressions
Member Value Expressions
Tuple Value Expressions
Numeric Functions
Time Series Functions
WHERE Clause Overrides
Creating a Cell Within the Context of a Cube
Querying on Property Values
Using Outer References in a Query
Named Sets and Calculated Members
Example 1
Example 2
Formula Solve Order
Longer Lifetime and Scope: Named Sets and Calculated Members
Visibility in Schema Rowsets
Set Functions for Expressing UI Operations
Drilling by Member
Drilling by Level
Preserving State During UI Operations
Conditional Expressions
If Clause
Simple Case Expression
Searched Case
Empty Cells
Semantics of Empty Cell Value
COALESCEEMPTY Function
Counting Empty Cells
Empty Cells in a Dataset
OLE DB for OLAP Objects and Schema Rowsets
Enumerator Object
New SOURCE_TYPE
Data Source Object
Keywords Returned in IDBInfo::GetKeywords
Information about MD Schema Object Names
Session Object
New Additions to IDBSchemaRowset
Object Names in Schema Rowsets
Sizes of UNIQUE_NAME Columns
CUBES Rowset
DIMENSIONS Rowset
HIERARCHIES Rowset
LEVELS Rowset
MEASURES Rowset
PROPERTIES Rowset
MEMBERS Rowset
Restrictions
Same Member in Multiple Hierarchies
Complex Member Relationships
Command Object
Semantics of DBGUID_DEFAULT
Controlling the Creation of Instances of a Rowset or a Dataset
Dataset Object
IMDDataset Interface
MDAXISINFO Structure
Axis Rowsets
Finding Slicer Information
IMDFind Interface
IMDRangeRowset Interface
Creating an Accessor
Unchanged Interfaces
Role of the Rowset Object in OLE DB for OLAP
OLE DB for OLAP Code Samples
Connecting to an MDP by Using the Root Enumerator
Creating an Instance of a Data Source Directly by Using the Provider's CLSID
Creating a Schema Rowset
Creating a Dataset and Obtaining Axis Information
Creating a Dataset and Getting Cell Data
Mapping MDX to SQL Statements
MEMBERS Table
LEVELS Table
FACT Table
Mapping Overview
FROM Clause
Axis Expressions
WHERE Clause
Simple Extensions to SQL-92
Local Temporary Views
Special Value, ALL()
Rank Operations
New Functions
Sample Cube
Mapping Sets
Tables and Sets
Literal Sets
UNION
EXCEPT
INTERSECT
CROSSJOIN
HIERARCHIZE
A Complete Example
COLUMNS Axis Expression
ROWS Axis Expression
Getting Cell Values
OLE DB for OLAP Reference
IMDDataset
IMDDataset::FreeAxisInfo
IMDDataset::GetAxisInfo
IMDDataset::GetAxisRowset
IMDDataset::GetCellData
IMDDataset::GetSpecification
IMDFind
IMDFind::FindCell
IMDFind::FindTuple
IMDRangeRowset
IMDRangeRowset::GetRangeRowset
CoTypes
Multidimensional Expressions (MDX) Grammar
Elements
Leveling Rules for Elements
Expressions
Leveling Rules for Expressions
Search Condition
Leveling Rules for Search Condition
Set Value Expression
Leveling Rules for Set Value Expression
Member Value Expression
Leveling Rules for Member Value Expression
Tuple Value Expression
Numeric Value Function
Leveling Rules for Numeric Value Function
MDX Statement
Leveling Rules for MDX Statement
Microsoft PivotTable Service Specification
PivotTable Service Overview
Storage Alternatives
Connection Model
Persisting Local Cubes - Creating the Cube File
Defining Cubes
Populating Cubes
Refreshing Cubes
Calculated Members
Microsoft PivotTable Service MDX Reference
CREATE CUBE Statement
DROP CUBE Statement
REFRESH CUBE Statement
INSERT INTO Statement
CREATE MEMBER, DROP MEMBER, ALTER MEMBER Statements
Implementation Notes
Data Source Objects
Session Objects
Command Objects
Rowset Objects
Dataset Objects
Schema Rowsets
Deviations from or Clarifications to the OLE DB for OLAP Specification
Additional Considerations
MDXSample
OLE DB Test Tools Overview
OLE DB Samples
Query Demo Contents
Query Demo Overview
Query Demo Files
Building Query Demo
Running Query Demo
Query Demo Menus and Toolbar
Query Demo Example
Rowset Viewer Contents
Rowset Viewer Overview
Rowset Viewer Files
Building Rowset Viewer
Running Rowset Viewer
Rowset Viewer Menus and Toolbar
Rowset Viewer Example
Table Copy Contents
Table Copy Overview
Table Copy Files
Building Table Copy
Running Table Copy
Table Copy Example
Sample Consumer Contents
Sample Consumer Overview
Sample Consumer Files
Building the Sample Consumer
Running the Sample Consumer