Because a direct mapping between ODBC functions and OLE DB methods does not exist in all cases, only similar functionality is provided. When more than one method can be used to achieve the same thing, the methods are separated with the word "or," for example, MethodA or MethodB. When more than one method must be called in sequence, the methods are numbered, for example, 1. MethodA, 2. MethodB, and so on.
ODBC function | OLE DB method | Remarks/property |
SQLAllocHandle Environment Connection Descriptor Statement |
OleInitialize CoCreateInstance IAccessor::CreateAccessor IDBCreateCommand::CreateCommand |
|
SQLBindCol | IAccessor::CreateAccessor | |
SQLBindParameter | IAccessor::CreateAccessor | |
SQLBrowseConnect | ISourcesRowset::GetSourcesRowset | |
SQLBulkOperations Insertions Deletions Updates Retrieve by bookmark |
IRowsetChange::InsertRows IRowsetChange::DeleteRows IRowsetChange::SetData IRowsetLocate::GetRowsByBookmark |
If IRowsetUpdate is requested, all operations are batched until IRowsetUpdate::Update is called |
SQLCancel | ICommand::Cancel | |
SQLCloseCursor | IRowset::Release | |
SQLColAttribute | IColumnsInfo::GetColumnInfo or IColumnsRowset::GetColumnsRowset | |
SQLColumnPrivileges | IDBSchemaRowset::GetRowset | DBSCHEMA_ COLUMN_PRIVILEGES |
SQLColumns | IDBSchemaRowset::GetRowset | DBSCHEMA_COLUMNS |
SQLConnect | 1. IDBProperties::SetProperties 2. IDBInitialize::Initialize |
|
SQLDataSources | ISourcesRowset::GetSourcesRowset | |
SQLDescribeCol | IColumnsInfo::GetColumnInfo | |
SQLDescribeParam | ICommandWithParameters:: GetParameterInfo |
|
SQLDisconnect | IDBInitialize::Uninitialize | |
SQLDriverConnect | 1. IDBProperties::SetProperties 2. IDBInitialize::Initialize |
|
SQLDrivers | ISourcesRowset::GetSourcesRowset | |
SQLEndTran | ITransaction::Commit or ITransaction::Abort | |
SQLError | 1. GetErrorInfo 2. IErrorRecords 3. IErrorInfo |
|
SQLExecDirect | ICommand::Execute | |
SQLExecute | ICommand::Execute | |
SQLFetch | 1. IRowset::GetNextRows, IRowsetLocate::GetRowsAt, or IRowsetLocate::GetRowsByBookmark 2. IRowset::GetData |
|
SQLFetchScroll | 1. IRowset::GetNextRows, IRowsetLocate::GetRowsAt, or IRowsetLocate::GetRowsByBookmark 2. IRowset::GetData |
|
SQLForeignKeys | IDBSchemaRowset::GetRowset | DBSCHEMA_ FOREIGN_KEYS |
SQLFreeHandle Environment Connection Descriptor Statement |
OleUninitialize IDBInitialize::Release IAccessor::ReleaseAccessor IRowset::Release |
|
SQLFreeStmt SQL_DROP SQL_CLOSE SQL_UNBIND SQL_RESET_ PARAMS |
ICommand::Release IRowset::Release IAccessor::ReleaseAccessor IAccessor::ReleaseAccessor |
|
SQLGetConnectAttr | IDBProperties::GetProperties | |
SQLGetCursorName | Not applicable | OLE DB performs updates through update methods, as opposed to positioned cursor operations |
SQLGetData | IRowset::GetData (for all data except BLOBs) or ILockBytes, ISequentialStream, IStorage, or IStream (for BLOB data) |
|
SQLGetDescField | IAccessor::GetBindings | Elements within binding structure |
SQLGetDescRec | IAccessor::GetBindings | Elements within binding structure |
SQLDiagField | 1. GetErrorInfo 2. IErrorRecords 3. IErrorInfo |
|
SQLDiagRec | 1. GetErrorInfo 2. IErrorRecords 3. IErrorInfo |
|
SQLGetEnvAttr | IDBProperties::GetProperties | |
SQLGetFunctions | IUnknown::QueryInterface | |
SQLGetInfo | IDBProperties::GetProperties | |
SQLGetStmtAttr | ICommandProperties::GetProperties or IRowsetInfo::GetProperties | |
SQLGetTypeInfo | IDBSchemaRowset::GetRowset | DBSCHEMA_ PROVIDER_TYPES |
SQLMoreResults | IMultipleResults | |
SQLNativeSql | ICommandText::GetCommandText | With NULL as pguidDialect |
SQLNumParams | ICommandWithParams::GetParameterInfo | |
SQLNumResultCols | IColumnsInfo::GetColumnInfo | |
SQLParamData | Not applicable | |
SQLPrepare | ICommand::Prepare | |
SQLPrimaryKeys | IDBSchemaRowset::GetRowset | DBSCHEMA_ PRIMARY_KEYS |
SQLProcedureColumns | IDBSchemaRowset::GetRowset | DBSCHEMA_ PROCEDURE_PARAMETERS, DBSCHEMA_ PROCEDURE_COLUMNS |
SQLProcedures | IDBSchemaRowset::GetRowset | DBSCHEMA_PROCEDURES |
SQLPutData | IRowsetChange::SetData (for all data except BLOBs) or ISequentialStream (for BLOB data) |
|
SQLRowCount | cRowsAffected in ICommand::Execute | |
SQLSetConnectAttr | IDBProperties::SetProperties | |
SQLSetCursorName | Not applicable | OLE DB performs updates through update methods, as opposed to positioned cursor operations |
SQLSetDescField | IAccessor::CreateAccessor | Elements within binding structure |
SQLSetDescRec | IAccessor::CreateAccessor | Elements within binding structure |
SQLSetEnvAttr | IDBProperties::SetProperties | |
SQLSetParam | ICommandWithParameters::SetParameterInfo | |
SQLSetPos SQL_POSITION SQL_REFRESH SQL_UPDATE SQL_DELETE SQL_ADD |
Not applicable IRowset::GetData or IRowsetResynch IRowsetChange::SetData IRowsetChange::Delete IRowsetChange::InsertRow IRowsetUpdate::Update |
|
SQLSetStmtAttr | ICommandProperties::SetProperties | |
SQLSpecialColumns | IColumnsInfo::GetColumnInfo | DBCOLUMNFLAGS_ ISROWID and DBCOLUMNFLAGS_ ISROWVER |
SQLStatistics | IDBSchemaRowset::GetRowset | DBSCHEMA_STATISTICS |
SQLTablePrivileges | IDBSchemaRowset::GetRowset | DBSCHEMA_TABLE_ PRIVILEGES |
SQLTables | IDBSchemaRowset::GetRowset | DBSCHEMA_TABLES |
SQLTransact | ITransaction::Abort and ITransaction::Commit |