public OrderedRowSet(RowSet sce, SList <TreeInfo <Serialisable> > ti, Context cx)
            : base(sce._tr, sce._qry, sce._aggregates, null)
        {
            _sce = sce;
            var t = new SMTree <Serialisable>(ti);
            var r = SDict <int, SRow> .Empty;
            int m = 0;

            for (var b = sce.First() as RowBookmark; b != null; b = b.Next() as RowBookmark)
            {
                var k = new Variant[ti.Length.Value];
                var i = 0;
                for (var c = ti.First(); c != null; c = c.Next())
                {
                    k[i] = new Variant(c.Value.headName.Lookup(new Context(b, cx)));
                }
                t  = t.Add(m, k);
                r += (m++, b._ob);
            }
            _tree = t;
            _rows = r;
        }
 SearchRowSet(RowSet sce, SSearch sc, SDict <long, SFunction> ags) : base(sce._tr, sc, ags, null)
 {
     _sch = sc;
     _sce = sce;
 }
 protected RowBookmark(RowSet rs, SRow ob, SDict <long, Serialisable> a, int p) : base(p)
 {
     _rs = rs; _ob = ob; _ags = a;
 }