public void RollbackRetaining() { 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.TransactionRollbacking; int[] statusVector = FesConnection.GetNewStatusVector(); int trHandle = this.handle; FbClient.isc_rollback_retaining(statusVector, ref trHandle); this.db.ParseStatusVector(statusVector); this.state = TransactionState.TransactionStarted; } }