This appendix describes OLE DB information that is specific to Oracle Provider for OLE DB. For generic OLE DB information that includes a detailed listing of all OLE DB properties and interfaces, see the Microsoft OLE DB Programmer's Reference Guide.
This appendix contains these topics:
This section lists the data type mapping between Oracle data types and OLE DB-defined types. Oracle Provider for OLE DB represents Oracle data types by using certain OLE DB-defined data types in the rowset as well as in parameters. OLE DB-defined types are also mapped to an Oracle data type when creating tables.
Each Oracle data type is mapped to a specific OLE DB data type, as shown in Table A-1. This correspondence is used when data type information is retrieved from an Oracle Database.
Oracle Data Type | OLE DB Data Type - Regular (NonUnicode) Mode | OLE DB Data Type - Unicode Mode |
---|---|---|
BFILE |
DBTYPE_BYTES |
DBTYPE_BYTES |
BINARY_FLOAT |
DBTYPE_R4 |
DBTYPE_R4 |
BINARY_DOUBLE |
DBTYPE_R8 |
DBTYPE_R8 |
BLOB |
DBTYPE_BYTES |
DBTYPE_BYTES |
CHAR |
DBTYPE_STR |
DBTYPE_WSTR |
CLOB |
DBTYPE_STR |
DBTYPE_WSTR |
DATE |
DBTYPE_DBTIMESTAMP |
DBTYPE_DBTIMESTAMP |
FLOAT |
DBTYPE_R8 |
DBTYPE_R8 |
INTERVAL DAY TO SECOND |
DBTYPE_STR |
DBTYPE_WSTR |
INTERVAL YEAR TO MONTH |
DBTYPE_STR |
DBTYPE_WSTR |
LONG |
DBTYPE_STR |
DBTYPE_WSTR |
LONG RAW |
BTYPE_BYTES |
DBTYPE_BYTES |
NCHAR |
DBTYPE_STR |
DBTYPE_WSTR |
NCLOB |
DBTYPE_STR |
DBTYPE_WSTR |
NUMBER |
DBTYPE_VARNUMERIC |
DBTYPE_VARNUMERIC |
NUMBER(p,s) |
DBTYPE_NUMERIC |
DBTYPE_NUMERIC |
NVARCHAR2 |
DBTYPE_STR |
DBTYPE_WSTR |
RAW |
DBTYPE_BYTES |
DBTYPE_BYTES |
ROWID |
DBTYPE_STR |
DBTYPE_STR |
TIMESTAMP |
DBTYPE_DBTIMESTAMP |
DBTYPE_DBTIMESTAMP |
TIMESTAMP WITH TIME ZONE |
DBTYPE_DBTIMESTAMP |
DBTYPE_DBTIMESTAMP |
TIMESTAMP WITH LOCAL TIME ZONE |
DBTYPE_DBTIMESTAMP |
DBTYPE_DBTIMESTAMP |
VARCHAR |
DBTYPE_STR |
DBTYPE_WSTR |
This section lists the properties supported by Oracle Provider for OLE DB. The read/write status and initial values are noted.
Table A-3 lists DataSourceInfo
properties.
Table A-3 DBPROPSET_DATASOURCEINFO Properties
Table A-4 lists initialization and authorization properties.
Table A-4 DBPROPSET_DBINIT Properties
Property | Status | Initial Value |
---|---|---|
DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO |
READ-ONLY | VARIANT_FALSE |
DBPROP_AUTH_USERID |
READ/WRITE | User ID |
DBPROP_INIT_DATASOURCE |
READ/WRITE | Connect string |
DBPROP_INIT_HWND |
READ/WRITE | Window handle for prompt |
DBPROP_INIT_LCID |
READ/WRITE | LCID of system |
DBPROP_INIT_OLEDBSERVICES |
READ/WRITE | DBPROPVAL_OS_ENABLEALL |
DBPROP_INIT_PROMPT |
READ/WRITE | DBPROMPT_NOPROMPT |
Table A-6 lists rowset properties.
Table A-6 DBPROPSET_ROWSET Properties
Property | Status | Initial Value |
---|---|---|
DBPROP_ABORTPRESERVE |
READ/WRITE | VARIANT_TRUE |
DBPROP_ACCESSORORDER |
READ-ONLY | DBPROP_AO_RANDOM |
DBPROP_APPENDONLY |
READ-ONLY | VARIANT_FALSE |
DBPROP_BLOCKINGSTORAGEOBJECTS |
READ-ONLY | VARIANT_FALSE |
DBPROP_BOOKMARKINFO |
READ-ONLY | 0 |
DBPROP_BOOKMARKS |
READ/WRITE | VARIANT_FALSE |
DBPROP_BOOKMARKSKIPPED |
READ/WRITE | VARIANT_TRUE |
DBPROP_BOOKMARKTYPE |
READ-ONLY | DBPROP_BMK_NUMERIC |
DBPROP_CACHEDEFERRED |
READ-ONLY | VARIANT_FALSE |
DBPROP_CANFETCHBACKWARDS |
READ/WRITE | VARIANT_FALSE |
DBPROP_CANHOLDROWS |
READ/WRITE | VARIANT_FALSE |
DBPROP_CANSCROLLBACKWARDS |
READ/WRITE | VARIANT_FALSE |
DBPROP_CHANGEINSERTEDROWS |
READ-ONLY | VARIANT_TRUE |
DBPROP_CLIENTCURSOR |
READ/WRITE | VARIANT_TRUE |
DBPROP_COLUMNRESTRICT |
READ-ONLY | VARIANT_TRUE |
DBPROP_COMMANDTIMEOUT |
READ/WRITE | 0 , currently not operational |
DBPROP_COMMITPRESERVE |
READ/WRITE | VARIANT_TRUE |
DBPROP_DEFERRED |
READ-ONLY | VARIANT_TRUE |
DBPROP_DELAYSTORAGEOBJECTS |
READ-ONLY | VARIANT_TRUE , no delayed update |
DBPROP_FINDCOMPAREOPS |
READ-ONLY | DBPROPVAL_CO_EQUALITY | DBPROPVAL_CO_STRING |DBPROPVAL_CO_CASESENSITIVE | DBPROPVAL_CO_CASEINSENSITIVE | DBPROPVAL_CO_CONTAINS |DBPROPVAL_CO_BEGINSWITH |
DBPROP_HIDDENCOLUMNS |
READ-ONLY | 0 |
DBPROP_IACCESSOR |
READ-ONLY | VARIANT_TRUE |
DBPROP_ICOLUMNSINFO |
READ-ONLY | VARIANT_TRUE |
DBPROP_ICOLUMNSROWSET |
READ/WRITE | VARIANT_TRUE |
DBPROP_ICONNECTIONPOINTCONTAINER |
READ-ONLY | VARIANT_TRUE |
DBPROP_ICONVERTTYPE |
READ-ONLY | VARIANT_TRUE |
DBPROP_IMMOBILEROWS |
READ-ONLY | VARIANT_TRUE |
DBPROP_IMULTIPLERESULTS |
READ/WRITE | VARIANT_TRUE |
DBPROP_IROWSET |
READ-ONLY | VARIANT_TRUE |
DBPROP_IROWSETCHANGE |
READ/WRITE | VARIANT_FALSE |
DBPROP_IROWSETFIND |
READ/WRITE | VARIANT_FALSE |
DBPROP_IROWSETIDENTITY |
READ-ONLY | VARIANT_TRUE |
DBPROP_IROWSETINFO |
READ-ONLY | VARIANT_TRUE |
DBPROP_IROWSETLOCATE |
READ/WRITE | VARIANT_FALSE |
DBPROP_IROWSETREFRESH |
READ/WRITE | VARIANT_FALSE |
DBPROP_IROWSETSCROLL |
READ/WRITE | VARIANT_FALSE |
DBPROP_IROWSETUPDATE |
READ/WRITE | VARIANT_FALSE |
DBPROP_ISEQUENTIALSTREAM |
READ/WRITE | VARIANT_TRUE |
DBPROP_ISUPPORTERRORINFO |
READ/WRITE | VARIANT_TRUE |
DBPROP_LITERALBOOKMARKS |
READ-ONLY | VARIANT_FALSE |
DBPROP_LITERALIDENTITY |
READ-ONLY | VARIANT_FALSE |
DBPROP_LOCKMODE |
READ-ONLY | DBPROPVAL_LM_NONE |
DBPROP_MAXOPENROWS |
READ/WRITE | 0 , No limit |
DBPROP_MAXPENDINGROWS |
READ-ONLY | 0 , No limit |
DBPROP_MAXROWS |
READ/WRITE | 0 |
DBPROP_MAXROWSIZE |
READ-ONLY | 0 |
DBPROP_MAXROWSIZEINCLUDESBLOB |
READ-ONLY | VARIANT_FALSE |
DBPROP_NOTIFICATIONGRANULARITY |
READ/WRITE | DBPROPVAL_NT_MULTIPLEROWS |
DBPROP_NOTIFICATIONPHASES |
READ/WRITE | DBPROPVAL_NP_OKTODO | DBPROPVAL_NP_ABOUTTODO |DBPROPVAL_NP_SYNCHAFTER | DBPROPVAL_NP_FAILEDTODO | DBPROPVAL_NP_DIDEVENT |
DBPROP_NOTIFYCOLUMNSET |
READ/WRITE | DBPROPVAL_NP_OKTODO | DBPROPVAL_NP_ABOUTTODO |DBPROPVAL_NP_SYNCHAFTER | DBPROPVAL_NP_FAILEDTODO | DBPROPVAL_NP_DIDEVENT |
DBPROP_NOTIFYROWDELETE |
READ/WRITE | DBPROPVAL_NP_OKTODO | DBPROPVAL_NP_ABOUTTODO |DBPROPVAL_NP_SYNCHAFTER | DBPROPVAL_NP_FAILEDTODO | DBPROPVAL_NP_DIDEVENT |
DBPROP_NOTIFYROWFIRSTCHANGE |
READ/WRITE | DBPROPVAL_NP_OKTODO | DBPROPVAL_NP_ABOUTTODO |
DBPROP_NOTIFYROWINSERT |
READ/WRITE | DBPROPVAL_NP_OKTODO | DBPROPVAL_NP_ABOUTTODO |DBPROPVAL_NP_SYNCHAFTER | DBPROPVAL_NP_FAILEDTODO | DBPROPVAL_NP_DIDEVENT |
DBPROP_NOTIFYROWRESYNCH |
READ/WRITE | DBPROPVAL_NP_OKTODO |DBPROPVAL_NP_ABOUTTODO |DBPROPVAL_NP_SYNCHAFTER |
DBPROP_NOTIFYROWSETRELEASE |
READ/WRITE | DBPROPVAL_NP_OKTODO |DBPROPVAL_NP_ABOUTTODO |DBPROPVAL_NP_SYNCHAFTER |
DBPROP_NOTIFYROWSETFETCHPOSITIONCHANGE |
READ/WRITE | DBPROPVAL_NP_OKTODO |DBPROPVAL_NP_ABOUTTODO |DBPROPVAL_NP_SYNCHAFTER |
DBPROP_NOTIFYROWUNDOCHANGE |
READ/WRITE | DBPROPVAL_NP_OKTODO | DBPROPVAL_NP_ABOUTTODO |DBPROPVAL_NP_SYNCHAFTER | DBPROPVAL_NP_FAILEDTODO | DBPROPVAL_NP_DIDEVENT |
DBPROP_NOTIFYROWUNDODELETE |
READ/WRITE | DBPROPVAL_NP_OKTODO | DBPROPVAL_NP_ABOUTTODO |DBPROPVAL_NP_SYNCHAFTER | DBPROPVAL_NP_FAILEDTODO | DBPROPVAL_NP_DIDEVENT |
DBPROP_NOTIFYROWUNDOINSERT |
READ/WRITE | DBPROPVAL_NP_OKTODO | DBPROPVAL_NP_ABOUTTODO |DBPROPVAL_NP_SYNCHAFTER | DBPROPVAL_NP_FAILEDTODO | DBPROPVAL_NP_DIDEVENT |
DBPROP_NOTIFYROWUNDOUPDATE |
READ/WRITE | DBPROPVAL_NP_OKTODO | DBPROPVAL_NP_ABOUTTODO |DBPROPVAL_NP_SYNCHAFTER | DBPROPVAL_NP_FAILEDTODO | DBPROPVAL_NP_DIDEVENT |
DBPROP_ORDEREDBOOKMARKS |
READ-ONLY | VARIANT_TRUE |
DBPROP_OTHERINSERT |
READ-ONLY | VARIANT_FALSE |
DBPROP_OTHERUPDATEDELETE |
READ-ONLY | VARIANT_FALSE |
DBPROP_OWNINSERT |
READ-ONLY | VARIANT_TRUE |
DBPROP_OWNUPDATEDELETE |
READ-ONLY | VARIANT_TRUE |
DBPROP_QUICKRESTART |
READ/WRITE | VARIANT_FALSE |
DBPROP_REENTRANTEVENTS |
READ-ONLY | VARIANT_FALSE |
DBPROP_REMOVEDELETED |
READ-ONLY | VARIANT_TRUE |
DBPROP_REPORTMULTIPLECHANGES |
READ-ONLY | VARIANT_FALSE |
DBPROP_RETURNPENDINGINSERTS |
READ/WRITE | VARIANT_TRUE |
DBPROP_ROWRESTRICT |
READ/WRITE | VARIANT_FALSE |
DBPROP_ROWTHREADMODEL |
READ-ONLY | DBPROPVAL_RT_FREETHREAD |
DBPROP_SERVERCURSOR |
READ/WRITE | VARIANT_FALSE |
DBPROP_SERVERDATAONINSERT |
READ/WRITE | VARIANT_TRUE |
DBPROP_STRONGIDENTITY |
READ/WRITE | VARIANT_TRUE |
DBPROP_TRANSACTEDOBJECT |
READ-ONLY | VARIANT_TRUE |
DBPROP_UNIQUEROWS |
READ/WRITE | VARIANT_FALSE |
DBPROP_UPDATABILITY |
READ/WRITE | DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_DELETE | DBPROPVAL_UP_INSET |
Oracle Provider for OLE DB sets other necessary properties if a particular property is set to VARIANT_TRUE
.
If DBPROP_IROWSETLOCATE
is set to VARIANT_TRUE
, then the following properties are also set to VARIANT_TRUE
:
DBPROP_IROWSETIDENTITY
DBPROP_CANHOLDROWS
DBPROP_BOOKMARKS
DBPROP_CANFETCHBACKWARDS
DBPROP_CANSCROLLBACKWARDS
If DBPROP_IROWSETSCROLL
is set to VARIANT_TRUE
, then the following properties are also set to VARIANT_TRUE
:
DBPROP_IROWSETIDENTITY
DBPROP_IROWSETLOCATE
DBPROP_CANHOLDROWS
DBPROP_BOOKMARKS
DBPROP_CANFETCHBACKWARDS
DBPROP_CANSCROLLBACKWARDS
If DBPROP_IROWSETUPDATE
is set to VARIANT_TRUE
, then the DBPROP_IROWSETCHANGE property is also set to VARIANT_TRUE
.
This section identifies the OLE DB interfaces that are supported by Oracle Provider for OLE DB.
CoType TDataSource { interface IDBCreateSession; interface IDBInitialize; interface IDBProperties; interface IPersist; interface IDBInfo; interface ISupportErrorInfo; }
CoType TSession { interface IGetDataSource; interface IOpenRowset; interface ISessionProperties; interface IDBCreateCommand; interface IDBSchemaRowset; interface ISupportErrorInfo; interface ITransactionJoin; interface ITransactionLocal; interface ITransaction; }
CoType TCommand { interface IAccessor; interface IColumnsInfo; interface ICommand; interface ICommandProperties; interface ICommandText; interface IConvertType; interface IColumnsRowset; interface ICommandPrepare; interface ICommandWithParameters; interface ISupportErrorInfo; }
CoType TRowset { interface IAccessor; interface IColumnsInfo; interface IConvertType; interface IRowset; interface IRowsetInfo; interface IColumnsRowset; interface IConnectionPointContainer; interface IRowsetChange; interface IRowsetFind; interface IRowsetIdentity; interface IRowsetLocate; interface IRowsetRefresh; interface IRowsetScroll; interface IRowsetUpdate; interface ISupportErrorInfo; }
CoType TMultipleResults { interface IMultipleResults; interface ISupportErrorInfo; }
CoType TTransactionOptions { interface ITransactionOptions; interface ISupportErrorInfo; }
DBTYPE_BASECOLUMNNAME
, DBTYPE_BASETABLENAME
, and DBTYPE_BASESCHEMANAME
metadata columns are not populated for read-only recordsets. OraOLEDB creates a read-only recordset for server cursor for SQL queries with DISTINCT
or UNIQUE
keywords. OraOLEDB also creates a read-only recordset for server cursor for JOIN
queries.
The following metadata columns are supported by the column rowset of OraOLEDB:
DBCOLUMN_IDNAME
DBCOLUMN_PROPID
DBCOLUMN_NAME
DBCOLUMN_NUMBER
DBCOLUMN_TYPE
DBCOLUMN_TYPEINFO
DBCOLUMN_COLUMNSIZE
DBCOLUMN_PRECISION
DBCOLUMN_SCALE
DBCOLUMN_FLAGS
DBCOLUMN_BASECATALOGNAME
DBCOLUMN_BASECOLUMNNAME
DBCOLUMN_BASESCHEMANAME
DBCOLUMN_BASETABLENAME
DBCOLUMN_COMPUTEMODE
DBCOLUMN_ISAUTOINCREMENT
DBCOLUMN_ISCASESENSITIVE
DBCOLUMN_ISSEARCHABLE
DBCOLUMN_OCTETLENGTH
DBCOLUMN_KEYCOLUMN
OraOLEDB provides the ability to trace the interface calls for debugging purposes. This feature has been provided to assist Oracle Support Services in debugging customer issues.
The provider can be configured to record the following information:
For OLE DB Interface method entry and exit:
Parameter values supplied (entry)
Return value; HRESULT
(exit)
Thread ID (entry and exit)
For Distributed transaction enlistment and delistment:
Session object information
Transaction ID
Note: To record global transaction enlistment and delistment information, theTraceLevel value must be set to session object. See "TraceLevel " . |
To trace the interface calls, you must configure the following registry values for HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_
HOMENAME
\OLEDB\
:
Valid Value: Any valid path and file name
TraceFileName
specifies the file name that is to be used for logging trace information. If TraceOption
is set to 0
, the name is used as is. However, if TraceOption
is 1
, then the thread ID is appended to the file name provided. See "TraceOption
" for more information.
Valid Values:
0
= None
1
= OLEDB Interface method entry
2
= OLEDB Interface method exit
4
= Distributed Transaction Enlistment and Delistment
TraceCategory
specifies the information that is to be traced. Combinations of different tracing categories can be made by adding the valid values. For example, set TraceCategory
to 3
to trace all OLE DB interface method entries and exits.
Valid Values:
0
= None
1
= Data Source object
2
= Session object
4
= Command object
8
= Rowset object
16
= Error object
64
= Multiple Results Object
TraceLevel
specifies the OLE DB objects to be traced. Because tracing all the entry and exit calls for all the OLE DB objects can be excessive, TraceLevel
is provided to limit tracing to a single or multiple OLE DB objects. To obtain tracing on multiple objects, add the valid values. For example, if TraceLevel
is set to 12
and TraceCategory
is set to 3
, the trace file will only contain method entry and exit for Command and Rowset objects.
The TraceLevel
value must be set to session object (2) to trace global transaction enlistment and delistment information.
Valid Values:
0
= Single trace file
1
= Multiple trace files
TraceOption
specifies whether to log trace information in single or multiple files for each Thread ID. If a single trace file is specified, the file name specified in TraceFileName
is used. If multiple trace file is requested, a Thread ID is appended to the file name provided to create a trace file for each thread.