About the OLE DB interface

You can access a wide variety of data through OLE DB data providers in InfoMaker. This section describes what you need to know to use OLE DB connections to access your data in InfoMaker.

Supported OLE DB data providers

For a complete list of the OLE DB data providers supplied with InfoMaker and the data they access, see "Supported Database Interfaces" in online Help.

What is OLE DB?

OLE DB API

OLE DB is a standard application programming interface (API) developed by Microsoft. It is a component of Microsoft's Data Access Components software. OLE DB allows an application to access a variety of data for which OLE DB data providers exist. It provides an application with uniform access to data stored in diverse formats, such as indexed-sequential files like Btrieve, personal databases like Corel Paradox, productivity tools such as spreadsheets and electronic mail, and SQL-based DBMSs.

The OLE DB interface supports direct connections to SQL-based databases.

Accessing data through OLE DB

Applications like InfoMaker that provide an OLE DB interface can access data for which an OLE DB data provider exists. An OLE DB data provider is a dynamic link library (DLL) that implements OLE DB function calls to access a particular data source.

The InfoMaker OLE DB interface can connect to any OLE DB data provider that supports the OLE DB object interfaces listed in the following table. An OLE DB data provider must support these interfaces in order to adhere to the Microsoft OLE DB 2.0 specification.

IAccessor

IDBInitialize

IColumnsInfo

IDBProperties

ICommand

IOpenRowset

ICommandProperties

IRowset

ICommandText

IRowsetInfo

IDBCreateCommand

IDBSchemaRowset

IDBCreateSession

ISourcesRowset


In addition to the required OLE DB interfaces, InfoMaker also uses the OLE DB interfaces listed in the following table to provide further functionality.

OLE DB interface

Use in InfoMaker

ICommandPrepare

Preparing commands and retrieving column information.

IDBInfo

Querying the data provider for its properties. If this interface is not supported, database connections might fail.

IDBCommandWithParameters

Querying the data provider for parameters.

IErrorInfo

Providing error information.

IErrorRecords

Providing error information.

IIndexDefinition

Creating indexes for the extended attribute system tables. Also creating indexes in the Database painter. If this interface is not supported, InfoMaker looks for index definition syntax in the pbodb170.ini file.

IMultipleResults

Providing information.

IRowsetChange

Populating the extended attribute system tables when they are created. Also, for updating blobs.

IRowsetUpdate

Creating the extended attribute system tables.

ISQLErrorInfo

Providing error information.

ISupportErrorInfo

Providing error information.

ITableDefinition

Creating the extended attribute system tables and also for creating tables in the Database painter. If this interface is not supported, the following behavior results:

  • InfoMaker looks for table definition syntax in the pbodb170.ini file

  • InfoMaker catalog tables cannot be used

  • DDL and DML operations, like modifying columns or editing data in the database painter, do not function properly

ITransactionLocal

Supporting transactions. If this interface is not supported, InfoMaker defaults to AutoCommit mode.


Accessing Unicode data

Using the OLE DB interface, InfoMaker can connect, save, and retrieve data in both ANSI/DBCS and Unicode databases but does not convert data between Unicode and ANSI/DBCS. When character data or command text is sent to the database, InfoMaker sends a Unicode string. The data provider must guarantee that the data is saved as Unicode data correctly. When InfoMaker retrieves character data, it assumes the data is Unicode.

A Unicode database is a database whose character set is set to a Unicode format, such as UTF-8, UTF-16, UCS-2, or UCS-4. All data must be in Unicode format, and any data saved to the database must be converted to Unicode data implicitly or explicitly.

A database that uses ANSI (or DBCS) as its character set might use special datatypes to store Unicode data. These datatypes are NCHAR, NVARCHAR, and NVARCHAR2. Columns with this datatype can store only Unicode data. Any data saved into such a column must be converted to Unicode explicitly. This conversion must be handled by the database server or client.

Components of an OLE DB connection

When you access an OLE DB data provider in InfoMaker, your connection goes through several layers before reaching the data provider. It is important to understand that each layer represents a separate component of the connection, and that each component might come from a different vendor.

Because OLE DB is a standard API, InfoMaker uses the same interface to access every OLE DB data provider. As long as an OLE DB data provider supports the object interfaces required by InfoMaker, InfoMaker can access it through the OLE DB interface.

The following figure shows the general components of a OLE DB connection.

Figure: Components of an OLE DB connection

Obtaining OLE DB data providers

There are two ways you can obtain OLE DB data providers for use with InfoMaker:

  • From SAP (recommended)

    Install the OLE DB data providers shipped with InfoMaker. You can do this either when you first install InfoMaker or later.

  • From another vendor

    InfoMaker lets you access data with any OLE DB data provider obtained from a vendor other than SAP if that data provider supports the OLE DB object interfaces required by InfoMaker. In most cases, these drivers work with InfoMaker. However, SAP might not have tested the drivers to verify this.

Supported versions for OLE DB

The OLE DB interface uses a DLL named PBOLE170.DLL to access a database through an OLE DB data provider.

Required OLE DB version

To use the OLE DB interface to access an OLE DB database, you must connect through an OLE DB data provider that supports OLE DB version 2.0 or later. For information on OLE DB specifications, see Microsoft Universal Data Access web site.