The following table shows the mandatory and optional interfaces defined by OLE DB for a session object.
Interface  | 
Required?  | 
Implemented by OLE DB templates?  | 
|---|---|---|
Mandatory  | 
Yes  | 
|
Mandatory  | 
Yes  | 
|
Mandatory  | 
Yes  | 
|
Optional  | 
No  | 
|
Optional  | 
No  | 
|
Optional  | 
No  | 
|
Optional  | 
No  | 
|
Optional  | 
Yes  | 
|
Optional  | 
Yes  | 
|
Optional  | 
No  | 
|
Optional  | 
Yes  | 
|
Optional  | 
No  | 
|
Optional  | 
No  | 
|
Optional  | 
No  | 
|
Optional  | 
No  | 
|
Optional  | 
No  | 
|
Optional  | 
No  | 
|
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.
.gif)