OLE DB: A Retrospective Analysis of a Universal Data Access Paradigm, Its Architecture, Query Processing, and Legacy Impact
Unlike the monolithic ODBC handle structure, OLE DB decomposes a data session into six mandatory and optional objects:
The proliferation of data sources in the client-server era of the mid-1990s presented a formidable challenge: each data store (relational database, email server, file system, directory service) exposed a proprietary API. Open Database Connectivity (ODBC) solved part of the problem by standardizing SQL-based relational access but explicitly excluded non-relational, non-SQL, or hierarchical data sources.
The is particularly notable: it can transform a forward-only, read-only rowset into a fully scrollable, updateable rowset by maintaining a client-side copy. This came at a significant memory and marshalling cost but enabled uniform scrolling across all data sources.
OLE DB introduces a sophisticated, albeit complex, model for query execution:
Overall, OLE DB is a powerful technology for accessing and manipulating data from various sources. However, it can be complex to use and may require significant expertise in COM programming and data access.
Instead of traditional INFORMATION_SCHEMA queries, OLE DB defines a set of schema rowsets (e.g., DBSCHEMA_TABLES , DBSCHEMA_COLUMNS ). These are COM-returned rowsets, allowing programmatic discovery of metadata without parsing SQL results. This design was elegant but often slower than direct catalog queries due to COM marshalling overhead.