Connection Object
- Last Updated: May 12, 2026
- 9 minute read
- OpenAccess SDK
- Version 8.1
- Documentation
The ADO Connection object represents a single session with an OLE DB data source. It defines a physical connection to the data source for a data provider.
The following table lists the supported ADO methods for the Connection object and maps them to the corresponding OLE DB methods.
Mapping Methods Supported by the ADO Connection Object
| ADO Method | OLE DB Method |
| BeginTrans | ITransactionLocal::StartTransaction |
| CommitTrans | ITransactionLocal::Commit |
| Execute | ICommand::Execute or IOpenRowset::OpenRowset |
| Open | IDBInitialize::Initialize IDBCreateSession::Create Session |
| RollBackTrans | ITransactionLocal::Abort |
| OpenSchema | IDBSchemaRowset::GetRowset |
The following table lists the dynamic properties supported for the ADO Connection object.
Dynamic Properties Supported for the ADO Connection Object
| ADO Property | Default Value and Description |
| Active Sessions | VALUE=0. There is no limit to the maximum number of sessions that can exist at one time. |
| Asynchable Abort | VALUE=False. The ADO Client cannot abort transactions asynchronously. |
| Asynchable Commit | VALUE=False. The ADO Client cannot commit transactions asynchronously. |
| Autocommit Isolation Levels | Specifies the transaction isolation level while in auto-commit mode. A combination of zero or one or more of the following: VALUE=DBPROPVAL_TI_BROWSE VALUE=DBPROPVAL_TI_CURSORSTABILITY VALUE=DBPROPVAL_TI_ISOLATED VALUE=DBPROPVAL_TI_READCOMMITTED VALUE=DBPROPVAL_TI_READUNCOMMITTED VALUE=DBPROPVAL_TI_REPEATABLEREAD VALUE=DBPROPVAL_TI_SERIALIZABLE |
| Catalog Location | The value depends on the OpenAccess SDK service you are using. Possible values are:VALUE=1. The catalog name is at the start of the fully qualified name. VALUE=2. The catalog name is at the end of the fully qualified name. |
| Catalog Term | Specifies the name the data source uses for a catalog.VALUE=Database |
| Catalog Usage | Specifies how catalog names can be used in text commands. A combination of zero or one or more of the following:VALUE=1. Catalog names are supported in all Data Manipulation Language statements.VALUE=2. Catalog names are supported in all table definition statements.VALUE=4. Catalog names are supported in all index definition statements.VALUE=8. Catalog names are supported in all privilege definition statements. |
| Column Definition | VALUE=1. Columns can be created non-nullable. |
| COM Object Support | VALUE=1. The data providers support access to BLOBs as structured storage objects. A data consumer determines which interfaces are supported through the Structured Storage property. |
| Connection Status | VALUE=1. The data source is in an initialized state and able to communicate with the data store. |
| Current Catalog | Specifies the name of the current catalog. The data consumer can use the CATALOGS rowset to enumerate catalogs. If not set, the ADO Client uses the default catalog. |
| Data Source | Specifies the name of the data source or enumerator to which to connect. |
| Data Source Name | Specifies the name of the data source (server) used during the connection process. |
| Data Source Object Threading Model | VALUE=1. The data provider uses the free-threading model. |
| DBMS Name | Specifies the name of the product accessed by the ADO Client. |
| DBMS Version | Specifies the version of the product that the ADO Client is currently accessing. |
| Encrypted | |
| Extended Properties | A provider-specific string that contains extra initialization information. Consumers should use this property only for provider-specific connection information.See Connecting with a Provider String for information on using the provider string with the ADO Client. |
| GROUP BY Support | This value depends on the OpenAccess SDK service you are using. VALUE=1. The GROUP BY clause is not supported. VALUE=2. The GROUP BY clause must contain all nonaggregated columns in the select list. It cannot contain any other columns. VALUE=4. The GROUP BY clause must contain all nonaggregated columns in the select list. It can contain columns that are not in the select list. VALUE=8. The columns in the GROUP BY clause and the select list are not related. The meaning of nongrouped, nonaggregated columns in the select list is data source-dependent. |
| Heterogeneous Table Support | VALUE=0. The ADO Client cannot join tables from different catalogs or providers. |
| Host Name In Certificate | Specifies a host name for certificate validation. This attribute ensures that the server the data provider is connecting to is the server that was requested. Consult your SSL administrator for the correct value. |
| Identifier Case Sensitivity | This value depends on the OpenAccess SDK service you are using. VALUE=1. Identifiers in SQL are case-sensitive and are stored in upper case in the system catalog. VALUE=2. Identifiers in SQL are case-insensitive and are stored in lower case in the system catalog. VALUE=4. Identifiers in SQL are case-sensitive and are stored in mixed case in the system catalog. VALUE=8. Identifiers in SQL are case-insensitive and are stored in mixed case in the system catalog. |
| Initial Catalog | Specifies the name of the initial, or default, catalog to use when connecting to the data source. |
| Isolation Levels | This value depends on the OpenAccess SDK service you are using. Zero, or a combination of one or more of the following: VALUE=DBPROPVAL_TI_BROWSE VALUE=DBPROPVAL_TI_CHAOS VALUE=DBPROPVAL_TI_CURSORSTABILITY VALUE=DBPROPVAL_TI_ISOLATED VALUE=DBPROPVAL_TI_READCOMMITTED VALUE=DBPROPVAL_TI_READUNCOMMITTED VALUE=DBPROPVAL_TI_REPEATABLEREAD VALUE=DBPROPVAL_TI_SERIALIZABLE |
| Isolation Retention | VALUE=0. The data provider supports no transaction isolation retention levels. |
| Locale Identifier | Specifies the preferred locale ID for the consumer. |
| Maximum Index Size | VALUE=0. There is no limit on the index size. |
| Maximum Open Chapters | VALUE=0. There is no limit on the maximum number of sections that can be open at any time. |
| Maximum Row Size | VALUE=0. There is no limit on the maximum length of a single row in a table. |
| Maximum Row Size Includes BLOB | VALUE=False. The maximum row size does not include the length of all BLOB data. |
| Maximum Tables in SELECT | VALUE=0. There is no limit on the number of tables in a Select statement. |
| Mode | VALUE=3. The default access is read-write. |
| Multi-Table Update | VALUE=False. The ADO Client cannot update rowsets derived from multiple tables. |
| Multiple Connections | VALUE=True. The ADO Client must spawn multiple connections to support concurrent command, session, and rowset objects. |
| Multiple Parameter Sets | VALUE=True. The ADO Client supports multiple parameter sets at the same time. |
| Multiple Results | VALUE=1. The ADO Client supports multiple results objects. |
| Multiple Storage Objects | VALUE=True. The ADO Client supports more than one open storage object at a time. |
| NULL Collation Order | The value depends on the OpenAccess SDK service you are using. |
| NULL Concatenation Behavior | The value depends on the OpenAccess SDK service you are using. |
| OLE DB Services | VALUE=0. The ADO Client does not enable the OLE DB services. |
| OLE DB Version | Specifies the version of OLE DB supported by the ADO Client. Refer to the README for the supported version. |
| Open Rowset Support | VALUE=0. All data providers support opening tables through IOpenRowset. |
| ORDER BY Columns In Select List | This value depends on the OpenAccess SDK service you are using. |
| Output Parameter Availability | VALUE=4. If a command returns a single result that is a rowset, output parameter data is available at the time the rowset is completely released. |
| Pass By Ref Accessors | VALUE=False. The ADO Client does not support the DBACCESSOR_PASSBYREF flag. |
| Password | Specifies the password to be used for connecting to the data source or enumerator. |
| Prepare Abort Behavior | The value depends on the OpenAccess SDK service you are using. |
| Prepare Commit Behavior | The value depends on the OpenAccess SDK service you are using. |
| Procedure Term | Specifies a character string that contains the data source vendor’s name for a procedure. |
| Prompt | Specifies whether to prompt the user for additional information during initialization. |
| Provider Friendly Name | Specifies the name of the data provider, DataDirect OpenAccess for ADO Provider. |
| Provider Name | VALUE=inoasnn.DLL, where nn is the release level of the data provider. |
| Provider Version | Specifies the version of the DataDirect data provider. Refer to the README for the version number. |
| Quoted Identifier Sensitivity | This value depends on the OpenAccess SDK service you are using. VALUE=1. Quoted identifiers in SQL are case-sensitive and are stored in upper case in the system catalog. VALUE=2. Quoted identifiers in SQL are case-insensitive and are stored in lower case in the system catalog. VALUE=4. Quoted identifiers in SQL are case-sensitive and are stored in mixed case in the system catalog. VALUE=8. Quoted identifiers in SQL are case-insensitive and are stored in mixed case. |
| Read Only Data Source | VALUE=0. The data source can be updated. |
| Rowset Conversions on Command | VALUE=True. Callers can inquire on a command about conversions supported on rowsets generated by the command. |
| Schema Term | Specifies the name the data source uses for a schema. |
| Schema Usage | This value depends on the OpenAccess SDK service you are using. A combination of the following: VALUE=DBPROPVAL_SU_DML_STATEMENTS. Schema names are supported in all Data Manipulation Language statements. VALUE=DBPROPVAL_SU_TABLE_DEFINITION. Schema names are supported in all table definition statements. VALUE=DBPROPVAL_SU_INDEX_DEFINITION. Schema names are supported in all index definition statements. VALUE=DBPROPVAL_SU_PRIVILEGE_DEFINITION. Schema names are supported in all privilege definition statements. |
| Server Name | Specifies the name of the server. This can be the same as the Data Source property if the server name is used to define the user’s data source. Alternatively, if the data provider connects through the data provider’s "friendly" data source names, this can be the actual name of the server. |
| SQL Support | Specifies the level of SQL grammar that the data provider supports. The effects are cumulative. A combination of zero or one or more of the following: VALUE=DBPROPVAL_SQL_NONE VALUE=DBPROPVAL_SQL_ODBC_COREVALUE=DBPROPVAL_SQL_ODBC_MINIMUM VALUE=DBPROPVAL_SQL_ODBC_EXTENDED VALUE=DBPROPVAL_SQL_ESCAPECLAUSES VALUE=DBPROPVAL_SQL_ANSI92_ENTRY VALUE=DBPROPVAL_SQL_ANSI92_ENTRY VALUE=DBPROPVAL_SQL_FIPS_TRANSITIONAL VALUE=DBPROPVAL_SQL_ANSI92_INTERMEDIATE VALUE=DBPROPVAL_SQL_ANSI92_FULL VALUE=DBPROPVAL_SQL_ANSI89_IEF VALUE=DBPROPVAL_SQL_SUBMINIMUM |
| Structured Storage | VALUE=1. The data provider supports DBPROPVAL_SS_ISEQUENTIALSTREAM. |
| Subquery Support | Specifies the predicates in text commands that support subqueries. The value can be zero, or one or more of the following: VALUE=DBPROPVAL_SQ_CORRELATEDSUBQUERIES VALUE=DBPROPVAL_SQ_COMPARISON VALUE=DBPROPVAL_SQ_EXISTS VALUE=DBPROPVAL_SQ_IN VALUE=DBPROPVAL_SQ_QUANTIFIED |
| Table Term | Specifies the name the data source uses for a table. |
| Transaction DDL | This value depends on the OpenAccess SDK service you are using. |
| TrustStore | The pathname of the truststore file or a comma separated list of valid Certificate Authorities (CAs) to be used when SSL is enabled (Encrypted=1) and server authentication is used. |
| TrustStorePassword | Specifies the password used to access the truststore file. The truststore file contains a list of the Certificate Authorities (CAs) that the client trusts. |
| User Name | Specifies a character string with the name used in a particular database. This can be different from the login name. |
| Window Handle | Specifies the window handle to use if the data source object or enumerator needs to prompt for additional information. |
Recordset Object
The Recordset object is the set of records resulting from a query against a database and a cursor, which is the interface to the records. If you create a Connection object before you open a Recordset object, multiple Recordset objects can be opened on the same connection.
The following table maps the methods of the Recordset object to the OLE DB methods supported by the ADO data provider.
Mapping Methods Supported by the Recordset Object
| ADO Method | OLE DB Method |
| AddNew | IRowsetChange::InsertRow |
| CancelBatch | IRowsetUpdate::Undo |
| Clone | IRowsetLocate |
| Close | IAccessor::ReleaseAccessor IRowset::ReleaseRows |
| Delete | IRowsetChange::DeleteRows |
| GetRows | IAccessor::CreateAccessor IRowsetLocate::GetRowsAt IRowset::GetNextRows IRowset::GetData |
| Move | IRowsetLocate::GetRowsAt IRowset::GetNextRows |
| MoveFirst | IRowsetLocate::GetRowsAt IRowset::RestartPosition |
| MoveLast | IRowsetLocate::GetRowsAt |
| MoveNext | IRowsetLocate::GetRowsAt IRowset::GetNextRows |
| MovePrevious | IRowsetLocate::GetRowsAt IRowset::GetNextRows |
| NextRecordSet | IMultipleResults::GetResult |
| Open | IOpenRowset::OpenRowset ICommand::Execute |
| Requery | IOpenRowset::OpenRowset ICommand::Execute |
| Supports | IRowsetInfo::GetProperties |
| Update | IRowsetChange::SetData IRowsetUpdate::Update |
| UpdateBatch | IRowsetUpdate::Update |
The following table lists the dynamic properties supported by the ADO Client for the Recordset object.
Dynamic Properties Used for the Recordset Object
| ADO Property | Default Value and Description |
| Access Order | VALUE=2. Columns can be accessed in any order. |
| Blocking Storage Objects | VALUE=False. Instantiated storage objects do not prevent the use of other methods. |
| Bookmark Information | Specifies additional information about bookmarks over the rowset. |
| Bookmark Type | VALUE=1. The bookmark type is numeric. |
| Change Inserted Rows | VALUE=False. DeleteRows returns a status of DBROWSTATUS_E_NEWLYINSERTED for the newly inserted row and SetData returns DB_E_NEWLYINSERTED. |
| Column Privileges | Specifies whether access rights are restricted on a column-by-column basis. VALUE=True. Access rights are restricted on a column-by-column basis. VALUE=False. Access rights are not restricted on a column-by-column basis. If the rowset exposes IRowsetChange, SetData can be called for any column in the rowset. |
| Delay Storage Object Updates | VALUE=False. Storage objects are used in immediate update mode. |
| Fetch Backwards | VALUE=False. cRows must be non-negative. |
| Hold Rows | VALUE=False. The rowset might require pending changes to be transmitted to the data store before fetching additional rows. |
| IAccessor | VALUE=True. |
| IColumnsInfo | VALUE=True. |
| IColumnsRowset | VALUE=True. |
| IConvertType | VALUE=True. |
| IRowset | VALUE=True. |
| IRowsetChange | VALUE=False. |
| IRowsetInfo | VALUE=True. |
| IRowsetLocate | VALUE=False. |
| Immobile Rows | VALUE=True. The rowset will not reorder inserted or updated rows. |
| Literal Bookmarks | VALUE=False. Bookmarks can only be compared with IRowsetLocate::Compare. |
| Literal Row Identity | VALUE=False. The consumer must call IRowsetIdentity::IsSameRow to determine whether two row handles point to the same row. |
| Lock Mode | VALUE=1. The data provider is not required to lock rows to ensure successful updates. |
| Maximum Open Rows | Specifies the maximum number of rows that can be active at the same time. VALUE=4096 |
| Maximum Pending Rows | VALUE=0. There is no limit to the maximum number of rows that can have pending changes at the same time. |
| Maximum Rows | VALUE=0. There is no limit to the number of rows that can be returned in a rowset. |
| Memory Usage | VALUE=0. There is no limit to the amount of memory that the rowset can use. |
| Objects Transacted | VALUE=True. Any object created on the specified column is transacted. |
| Others' Changes Visible | VALUE=False. The rowset cannot see updates and deletes made by others. |
| Others' Inserts Visible | VALUE=False. The rowset cannot see the rows inserted by others. |
| Own Changes Visible | VALUE=False. The rowset cannot see updates and deletes made by consumers of the rowset unless the command is executed again. |
| Own Inserts Visible | VALUE=False. The rowset can see the rows inserted by consumers only after the command is run again. |
| Preserve on Abort | The value is specific to the OpenAccess SDK Server you are using. |
| Preserve on Commit | The value is specific to the OpenAccess SDK Server you are using. |
| Quick Restart | VALUE=True. IRowset::RestartPosition is not expensive to execute and does not execute the command that created the rowset again. |
| Remove Deleted Rows | VALUE=False. Static cursors do not remove deleted rows. |
| Report Multiple Changes | VALUE=False. An update or delete always affects a single row or the ADO Client cannot detect whether it affects multiple rows. |
| Return Pending Inserts | VALUE=False. The methods that fetch rows cannot return pending insert rows. |
| Row Privileges | VALUE=False. Access rights are not restricted on a row-by-row basis. |
| Row Threading Model | VALUE=1. The ADO Client supports the free-threaded model. |
| Scroll Backward | VALUE=False. IRowsOffset must be non-negative. |
| Server Cursor | VALUE=False. The ADO Client determines where to locate the cursor. |
| Skip Deleted Bookmarks | VALUE=False. GetRowsAt, GetApproximatePosition, or FindNextRow returns DB_E_BADBOOKMARK. |
| Strong Row Identity | VALUE=False. There is no guarantee that the handles of newly inserted rows can be compared successfully. |
| Unique Rows | VALUE=False. Rows in the rowset may or may not be uniquely identified by their column values. |
| Updatability | Specifies the supported methods on IRowsetChange. VALUE=0 |
| Use Bookmarks | VALUE=False. The rowset does not support bookmarks. |