public bool Lock <TRecord>(long apTranId
                                   , SqlBuilder predicate)
            where TRecord : class, IRecord, new()
        {
            if (!_lockManager.Lock <TRecord>(apTranId, predicate))
            {
                return(false);
            }

            _lockDataInserted = true;
            return(true);
        }
        public override bool MoveNext()
        {
            bool nextExists = _aRecordReaderImp.MoveNext();

            if (nextExists)
            {
                // 次のレコードが存在すれば、LockManagerにロックの有無を問い合わせる
                _currentRecord = _aRecordReaderImp.Current;
                _writable      = _aLockManager.Lock(_apTranId
                                                    , _currentRecord
                                                    , this.MakeUsedTables());
            }
            else
            {
                _currentRecord = null;
                _writable      = false;
            }

            return(nextExists);
        }