Exemplo n.º 1
0
        public void CommitRetaining()
        {
            lock (this.db)
            {
                if (this.state != TransactionState.TransactionStarted &&
                    this.state != TransactionState.TransactionPrepared)
                {
                    throw new IscException(
                              IscCodes.isc_arg_gds,
                              IscCodes.isc_tra_state,
                              this.handle,
                              "no valid");
                }

                this.state = TransactionState.TransactionCommiting;

                int[] statusVector = FesConnection.GetNewStatusVector();
                int   trHandle     = this.handle;

                FbClient.isc_commit_retaining(statusVector, ref trHandle);

                this.db.ParseStatusVector(statusVector);

                this.state = TransactionState.TransactionStarted;
            }
        }