コード例 #1
0
        public override void IntersectAll(RowSetNavigatorData other)
        {
            object[] b = null;
            this.SortFull();
            this.Reset();
            other.SortFull();
            IRowIterator emptyIterator = this._fullIndex.GetEmptyIterator();

            while (base.HasNext())
            {
                object[] next = base.GetNext();
                if ((b == null) || (this._fullIndex.CompareRowNonUnique(this._session, next, b, this._fullIndex.GetColumnCount()) > 0))
                {
                    b             = next;
                    emptyIterator = other.FindFirstRow(next);
                }
                Row      nextRow   = emptyIterator.GetNextRow();
                object[] objArray3 = (nextRow == null) ? null : nextRow.RowData;
                if ((objArray3 == null) || (this._fullIndex.CompareRowNonUnique(this._session, next, objArray3, this._fullIndex.GetColumnCount()) != 0))
                {
                    this.Remove();
                }
            }
            other.Close();
        }
コード例 #2
0
ファイル: RowSetNavigatorData.cs プロジェクト: cwdotson/FwNs
        public virtual void IntersectAll(RowSetNavigatorData other)
        {
            object[] b = null;
            this.SortFull();
            other.SortFull();
            IRowIterator emptyIterator = this._queryExpression.FullIndex.GetEmptyIterator();

            while (base.HasNext())
            {
                object[] next = base.GetNext();
                if ((b == null) || (this._queryExpression.FullIndex.CompareRowNonUnique((Session)base.session, next, b, this._visibleColumnCount) > 0))
                {
                    b             = next;
                    emptyIterator = other.FindFirstRow(next);
                }
                object[] objArray3 = emptyIterator.GetNext();
                if ((objArray3 == null) || (this._queryExpression.FullIndex.CompareRowNonUnique((Session)base.session, next, objArray3, this._visibleColumnCount) != 0))
                {
                    this.Remove();
                }
            }
            other.Close();
            this.Reset();
        }