Differences in OLE DB Interfaces (SQL Server Compact)

Some OLE DB interfaces used with Microsoft SQL Server Compact 4.0 differ from the generic interfaces described in the OLE DB specification.

The differences between SQL Server Compact 4.0 interfaces and the generic interfaces are described in the following table.

Implemented interface

Description of differences


The SQL Server Compact 4.0 IAccessor::CreateAccessor method ignores the DBACCESSOR_OPTIMIZED flag. The DBACCESSOR_OPTIMIZED flag has no effect on the performance of either row or parameter accessors because SQL Server Compact 4.0 does not use an internal row cache. All accessors provide equally good performance. There is no need to optimize accessors performance.


The name of an index that can be modified by using IAlterIndex::AlterIndex.


SQL Server Compact 4.0 supports incrementing and changing the seed of an autoincrement column, but not changing a column to or from autoincrement.

IAlterTable does not guarantee that you can modify every detail about a table. It lets a provider expose any table-altering functionality that exists in a provider. Not every provider allows the same table modifications in their data stores. SQL Server Compact 4.0 supports changing the name of an existing table or column in addition to the DBPROP_COL_DEFAULT, DBPROP_COL_SEED, and DBPROP_COL_INCREMENT properties.


Use this interface to create a new database. The CreateDataSource and GetCreationProperties methods on this interface are supported. Methods for modifying or deleting databases are not supported.


Use this interface to open base tables and integrated indexes. You cannot use this interface to open views.


When attempting to change the current index by using IRowsetCurrentIndex, the following rules apply:

  • All accessor handles must be released.

  • All row handles must be released.

  • No pending changes should be outstanding


The GetProperties method of IDBProperties returns the default values of all the Properties except LCID.


SQL Server Compact 4.0 supports the Read Committed, Repeatable Read, and Serializable Transaction Isolation Levels. If you specify a lower Transaction Isolation Level than Read Commited, the setting is ignored and changed to a Read Committed Transaction Isolation Level.

SQL Server Compact 4.0 supports only single-phase commit.