The following table shows the mandatory and optional interfaces defined by OLE DB for a session object.
Session
Interface |
Required? |
Implemented by OLE DB Template Classes? |
IGetDataSource | Mandatory | Yes |
IOpenRowset | Mandatory | Yes |
ISessionProperties | Mandatory | Yes |
IDBCreateCommand | Optional | Yes |
IDBSchemaRowset | Optional | Yes |
IIndexDefinition | Optional | No |
ISupportErrorInfo | Optional | No |
ITableDefinition | Optional | No |
ITransactionJoin | Optional | No |
ITransactionLocal | Optional | No |
ITransactionObject | Optional | No |
The session object creates a rowset object. If the provider supports commands, the session also creates a command object (CCommand, implementing the OLE DB TCommand). The command object implements the ICommand interface and uses the ICommand::Execute method to execute commands on the rowset, as shown in the following figure.