Other Non-SQL Server Subscribers
For a list of non-SQL Server Subscribers supported by Microsoft, see Non-SQL Server Subscribers. This topic includes information about requirements for ODBC drivers and OLE DB providers.
ODBC Driver Requirements
The ODBC driver:
- Must be ODBC level-1 compliant.
- Must be thread-safe, and for the processor architecture (Intel or Alpha) and platform (32 bit or 64 bit) on which the SQL Server Distributor runs.
- Must be transaction capable.
- Must support the Data Definition Language (DDL).
- Cannot be read-only.
- Must support long table names such as MSreplication_subscriptions.
Replicating Using OLE DB Interfaces
OLE DB providers must support these objects for transactional replication:
- DataSource object
- Session object
- Command object
- Rowset object
- Error object
DataSource Object Interfaces
The following interfaces are required to connect to a data source:
- IDBInitialize
- IDBCreateSession
- IDBProperties
If the provider supports the IDBInfo interface, Microsoft SQL Server uses the interface to retrieve information such as the quoted identifier character, maximum SQL statement length, and maximum number of characters in table and column names.
Session Object Interfaces
The following interfaces are required:
- IDBCreateCommand
- ITransaction
- ITransactionLocal
- IDBSchemaRowset
Command Object Interfaces
The following interfaces are required:
- ICommand
- ICommandProperties
- ICommandText
- ICommandPrepare
- IColumnsInfo
- IAccessor
- ICommandWithParameters
IAccessor is necessary to create parameter accessors. If the provider supports IColumnRowset, SQL Server uses that interface to determine whether a column is an identity column.
Rowset Object Interfaces
The following interfaces are required:
- IRowset
- IAccessor
- IColumnsInfo
An application should open a rowset on a replicated table that is created in the subscription database. IColumnsInfo and IAccessor are needed to access data in the rowset.
Error Object Interfaces
Use the following interfaces to manage errors:
- IErrorRecords
- IErrorInfo
Use ISQLErrorInfo if it is supported by the OLE DB provider.
For more information about the OLE DB provider, see the documentation supplied with your OLE DB provider.