Article ID: 103255
Article Last Modified on 5/6/2003
APPLIES TO
- Microsoft Access 1.0 Standard Edition
- Microsoft Access 1.1 Standard Edition
- Microsoft Access 2.0 Standard Edition
This article was previously published under Q103255
SUMMARY
Advanced: Requires expert coding, interoperability, and multiuser skills.
This articles describes the factors that determine whether Microsoft Access will open an attached ODBC table in read-only mode or in read/write mode.
MORE INFORMATION
The following are three factors that can cause Microsoft Access to open an attached ODBC table in read-only mode:
- When the attached table does not have a unique index in the data source.
Microsoft Access is built on a keyset-driven cursor model, in which data is retrieved and updated based on key (or unique index) fields. If the key does not exist in the back-end table, Microsoft Access opens the table in read-only mode and the user is not able to modify the data. - If the ODBC data source is set to read-only by either the DBMS security system or the network security system.
Microsoft Access determines this status by calling the ODBC application programming interface (API) SQLGetInfo() with fInfoType=SQL_DATA_SOURCE_READ_ONLY. If *rgbInfoValue=TRUE, then the data source is read-only; as a result, the attached table is opened in read-only mode. - If cursors are treated by the ODBC driver in a certain way. When a transaction is committed or rolled back, the ODBC driver can:
- Preserve the cursor.
- Close the cursor.
- Close and delete the cursor.
A cursor is a construct that is defined to point to a record (or set of records) in the table. The data is then manipulated by referencing the cursor.
If the driver exhibits behavior 3, Microsoft Access opens the table in read-only mode. To determines this, Microsoft Access first calls the ODBC API SQLGetInfo() with fOption=SQL_TXN_CAPABLE. If
*rgbInfoValue=TRUE,
Microsoft Access calls SQLGetInfo with
fInfoType=SQL_CURSOR_COMMIT_BEHAVIOR
followed by
fInfoType=SQL_CURSOR_ROLLBACK_BEHAVIOR.
Keywords: kbinfo kbusage KB103255