Subject Re: [Firebird-Architect] AND CHAIN / AND NO CHAIN
Author Lester Caine
David Jencks wrote:

>>>judging by what chain seems to mean with other dbs,
>>
>>>+ chain means immediately start a new transaction
>>>- chain means start autocommit.
>>
>>>I could be wrong here...
>>
>>> I'd also be surprised if sql 2003 has a concept of "retaining"
>>
>>Here's what is the definition associated with AND CHAIN, in SQL-2003:
>>
>>[start quote...]
>>9) The current SQL-transaction is terminated. If AND CHAIN was
>>specified, then a new SQL-transaction is initiated with the same
>>access mode, isolation level, and diagnostics area limit as the
>>SQL-transaction just terminated. Any branch transactions of the
>>SQL-transaction are initiated with the same access mode, isolation
>>level, and diagnostics area limit as the corresponding branch of the
>>SQL-transaction just terminated.
>>[...end quote]
>>
>>If AND CHAIN or AND NO CHAIN is specified then AND NO CHAIN is
>>implicit.
>>
>>Don't you think that AND CHAIN is quite similar to RETAINING?
>
> Not at all. I believe the idea is that after COMMIT AND CHAIN, you see
> all updates of other transactions committed before your commit. I
> think the purpose is to avoid requiring an immediate BEGIN TRANSACTION
> call. However, I don't know exactly what they mean by access mode or
> diagnostics area limit

Since the SQL2003 is a typical vague standard, it's the similarities and
differences I'm trying to master.
So AND CHAIN would be
COMMIT X
SET TRANSACTION X ......
where ...... matches the original transaction
Is the bit I am missing here that RETAIN keeps it's CURSOR settings as
they were before the COMMIT? Since I'm normally accessing Firebird via
IBO or PHP, some of the subtleties get hidden :)

--
Lester Caine
-----------------------------
L.S.Caine Electronic Services