MDAC 2.5 SDK - OLE DB Programmer's Reference
Chapter 4: Rowsets
Some providers need to expose very simple rowsets to their consumers. Conceptually, these rowsets represent the result of the simple query SELECT * FROM Tablename. To allow providers to interpret this simple query without the overhead of supporting a complete query language, OLE DB provides a simple rowset interface, IOpenRowset. IOpenRowset effectively exposes a rowset in the absence of a command. IOpenRowset is implemented on the session as shown in the following illustration.
Creating a rowset directly with IOpenRowset
A consumer may need to construct a fully qualified table name incorporating the names of the associated schema and catalog.
To construct a fully qualified name if DBPROP_CATALOGLOCATION is DBPROPVAL_CL_START or the provider does not support the DBPROP_CATALOGLOCATION property, a consumer follows these steps:
To construct a fully qualified name if DBPROP_CATALOGLOCATION is DBPROPVAL_CL_END, a consumer follows these steps:
Note Consumers should provide qualified table names only to reference tables in other schemas or catalogs. Further, consumers should not quote table names unless such quoting is required to make table names unambiguous (such as, to enforce case sensitivity). Providers for which quoting a simple table name has no meaning might not support quoting tables in IOpenRowset::OpenRowset while they do support quoting tables as part of a command text for parsing reasons. Providers should not require table names to be quoted and should guarantee that unquoted table names correctly open the specified table, even if the table name contains special characters, as long as the table can be unambiguously identified without quoting.