Support of automatic transactions
Automatic transaction start and commit
The main cardinal change is in accordance with implementation of operation auto-commit support. As far as this mode is not optimal for work with SQL-server, by default the mode is off. To work in auto-commit mode you may set «auto_commit=true» in connection string or set «Session AutoCommit=true» session's property if connection was made already. To set the mode off you may start transaction directly using the session's methods (or by ADODB.Connection.BeginTrans) or by executing «SET TRANSACTION» query. With last way you start transaction with specific parameters, which you may not supply with provider yet.
Provider can define transaction's start/commit/rollback queries and applies its to the session.
Auto-transactions are private. That is to say, if you open several result sets in auto-commit mode, private transaction will be connected with each of it. Commit will called if set closes. Another query types (excluding transaction control commands) will terminate automatically with commit calling for its local transaction. This scheme isolates open queries from data modification commands and excepts need in reopening (or additionally loading) of result sets, as in BDE.
The isolation
level of auto-transactions can be defined as
«auto_commit_level» parameter in connection string
or if connection was made already by «Autocommit IsolationLevels»
session parameter. The values of this parameters are the same:
0x1000 | Read Commited (Cursor Stability) |
0x10000 [default] | Repeatable Read (Snapshot, Concurrency) |
0x100000 | Serializable (Isolated, Consistency) |
Provider's name change
To avoid name conflicts the provider's registered name was changed from «IBProvider» to «LCPI.IBProvider». Therefore after new DLL registered you should use the new name to create the provider.
The DLL name was not changed and it is «_IBProvider.dll» still.