Ejemplo n.º 1
0
        public void NavigationClearFilter()
        {
            if (!EsentVersion.SupportsWindows8Features)
            {
                return;
            }

            JET_TABLECREATE tc = this.CreateTable(this.tableName);

            this.InsertRecord(tc.tableid, 1);
            this.InsertRecord(tc.tableid, 2);
            this.InsertRecord(tc.tableid, 3);
            this.InsertRecord(tc.tableid, 5);
            this.InsertRecord(tc.tableid, 6);

            JET_INDEX_COLUMN filter = this.CreateFilter(this.columnIdKey, 1, JetRelop.BitmaskEqualsZero);

            JET_INDEX_COLUMN[] filters = { filter };

            this.MoveCursor(tc.tableid, JET_Move.First, filters);
            this.VerifyCurrentRecord(tc.tableid, 2);
            this.MoveCursor(tc.tableid, JET_Move.Next, null);
            this.VerifyCurrentRecord(tc.tableid, 3);
            this.MoveCursor(tc.tableid, JET_Move.Next, filters);
            this.VerifyCurrentRecord(tc.tableid, 6);
        }
Ejemplo n.º 2
0
        public void NavigationMoveSecondaryNotSupported()
        {
            if (!EsentVersion.SupportsWindows8Features)
            {
                return;
            }

            JET_TABLECREATE tc = this.CreateTable(this.tableName);

            this.InsertRecord(tc.tableid, 1, 10);
            this.InsertRecord(tc.tableid, 2, 10);
            this.InsertRecord(tc.tableid, -3, 30);
            Api.JetSetCurrentIndex(this.sesId, tc.tableid, this.secIndexWithPrimaryName);
            JET_INDEX_COLUMN filter = this.CreateFilter(this.columnIdKey, 2, JetRelop.Equals);

            JET_INDEX_COLUMN[] filters = { filter };

            this.MoveCursor(tc.tableid, JET_Move.First, filters, typeof(EsentFilteredMoveNotSupportedException));
        }
Ejemplo n.º 3
0
        public void NavigationSeekWithFiltering()
        {
            if (!EsentVersion.SupportsWindows8Features)
            {
                return;
            }

            JET_TABLECREATE tc = this.CreateTable(this.tableName);

            this.InsertRecord(tc.tableid, 1, 300);
            this.InsertRecord(tc.tableid, 2, 100);
            this.InsertRecord(tc.tableid, 3, 200);

            JET_INDEX_COLUMN filter = this.CreateFilter(this.columnIdData1, 250, JetRelop.LessThanOrEqual);

            JET_INDEX_COLUMN[] filters = { filter };

            Windows8Api.JetSetCursorFilter(this.sesId, tc.tableid, filters, CursorFilterGrbit.None);
            this.SeekToRecordClustered(tc.tableid, 1, SeekGrbit.SeekGE);
            this.VerifyCurrentRecord(tc.tableid, 2, 100);
        }
Ejemplo n.º 4
0
        public void NavigationMoveNextByteOrder()
        {
            if (!EsentVersion.SupportsWindows8Features)
            {
                return;
            }

            JET_TABLECREATE tc = this.CreateTable(this.tableName);

            this.InsertRecord(tc.tableid, 1, 10);
            this.InsertRecord(tc.tableid, 2, 260);
            this.InsertRecord(tc.tableid, 3, 20);

            JET_INDEX_COLUMN filter1 = this.CreateFilter(this.columnIdData1, 15, JetRelop.LessThan);

            JET_INDEX_COLUMN[] filters = { filter1 };

            this.MoveCursor(tc.tableid, JET_Move.First, filters);
            this.VerifyCurrentRecord(tc.tableid, 1);
            this.MoveCursor(tc.tableid, JET_Move.Next, filters, typeof(EsentNoCurrentRecordException));
        }
Ejemplo n.º 5
0
        public void NavigationMoveLastClustered()
        {
            if (!EsentVersion.SupportsWindows8Features)
            {
                return;
            }

            JET_TABLECREATE tc = this.CreateTable(this.tableName);

            this.InsertRecord(tc.tableid, 2);
            this.InsertRecord(tc.tableid, 3);
            this.InsertRecord(tc.tableid, 1);

            JET_INDEX_COLUMN filter1 = this.CreateFilter(this.columnIdKey, 2, JetRelop.LessThan);

            JET_INDEX_COLUMN[] filters = { filter1 };

            this.MoveCursor(tc.tableid, JET_Move.Last, filters);

            this.VerifyCurrentRecord(tc.tableid, 1);
        }
Ejemplo n.º 6
0
        public void NavigationMultipleFilters()
        {
            if (!EsentVersion.SupportsWindows8Features)
            {
                return;
            }

            JET_TABLECREATE tc = this.CreateTable(this.tableName);

            this.InsertRecord(tc.tableid, 1, 20);
            this.InsertRecord(tc.tableid, 2, 30);
            this.InsertRecord(tc.tableid, 3, 30);

            JET_INDEX_COLUMN filter1 = this.CreateFilter(this.columnIdKey, 2, JetRelop.NotEquals);
            JET_INDEX_COLUMN filter2 = this.CreateFilter(this.columnIdData1, 30, JetRelop.GreaterThanOrEqual);

            JET_INDEX_COLUMN[] filters = { filter1, filter2 };

            this.MoveCursor(tc.tableid, JET_Move.First, filters);

            this.VerifyCurrentRecord(tc.tableid, 3);
        }
Ejemplo n.º 7
0
        public void NavigationBitmask()
        {
            if (!EsentVersion.SupportsWindows8Features)
            {
                return;
            }

            JET_TABLECREATE tc = this.CreateTable(this.tableName);

            this.InsertRecord(tc.tableid, 1, 15);
            this.InsertRecord(tc.tableid, 3, 11);
            this.InsertRecord(tc.tableid, 5, 10);
            this.InsertRecord(tc.tableid, 9, 8);

            JET_INDEX_COLUMN filter1 = this.CreateFilter(this.columnIdKey, 8, JetRelop.BitmaskEqualsZero);
            JET_INDEX_COLUMN filter2 = this.CreateFilter(this.columnIdData1, 1, JetRelop.BitmaskNotEqualsZero);

            JET_INDEX_COLUMN[] filters = { filter1, filter2 };

            this.MoveCursor(tc.tableid, JET_Move.Last, filters);

            this.VerifyCurrentRecord(tc.tableid, 3, 11);
        }
Ejemplo n.º 8
0
        public void JetMoveWithMoveKeyNeClustered()
        {
            if (!EsentVersion.SupportsWindows8Features)
            {
                return;
            }

            JET_TABLECREATE tc = this.CreateTable(this.tableName);

            this.InsertRecord(tc.tableid, 1);
            this.InsertRecord(tc.tableid, 2);
            this.InsertRecord(tc.tableid, 3);
            this.InsertRecord(tc.tableid, 4);

            this.VerifyCurrentRecord(tc.tableid, 1);

            JET_INDEX_COLUMN filter = this.CreateFilter(this.columnIdKey, 2, JetRelop.NotEquals);

            JET_INDEX_COLUMN[] filters = { filter };

            Windows8Api.JetSetCursorFilter(this.sesId, tc.tableid, filters, CursorFilterGrbit.None);
            Api.JetMove(this.sesId, tc.tableid, JET_Move.Next, MoveGrbit.MoveKeyNE);
            this.VerifyCurrentRecord(tc.tableid, 3);

            filter  = this.CreateFilter(this.columnIdKey, 4, JetRelop.Equals);
            filters = new JET_INDEX_COLUMN[] { filter };

            Windows8Api.JetSetCursorFilter(this.sesId, tc.tableid, filters, CursorFilterGrbit.None);
            Api.JetMove(this.sesId, tc.tableid, JET_Move.Next, MoveGrbit.MoveKeyNE);
            this.VerifyCurrentRecord(tc.tableid, 4);

            Windows8Api.JetSetCursorFilter(this.sesId, tc.tableid, null, CursorFilterGrbit.None);
            for (int i = 0; i < 2; i++)
            {
                try
                {
                    Api.JetMove(this.sesId, tc.tableid, JET_Move.Next, MoveGrbit.MoveKeyNE);
                    Assert.Fail("Should have thrown EsentNoCurrentRecordException");
                }
                catch (EsentNoCurrentRecordException)
                {
                }

                this.VerifyCurrentRecord(tc.tableid, 4, typeof(EsentNoCurrentRecordException));
            }

            filter  = this.CreateFilter(this.columnIdKey, 2, JetRelop.Equals);
            filters = new JET_INDEX_COLUMN[] { filter };

            Windows8Api.JetSetCursorFilter(this.sesId, tc.tableid, filters, CursorFilterGrbit.None);
            Api.JetMove(this.sesId, tc.tableid, JET_Move.Previous, MoveGrbit.MoveKeyNE);
            this.VerifyCurrentRecord(tc.tableid, 2);

            Windows8Api.JetSetCursorFilter(this.sesId, tc.tableid, null, CursorFilterGrbit.None);
            Api.JetMove(this.sesId, tc.tableid, JET_Move.Previous, MoveGrbit.MoveKeyNE);
            this.VerifyCurrentRecord(tc.tableid, 1);

            for (int i = 0; i < 2; i++)
            {
                try
                {
                    Api.JetMove(this.sesId, tc.tableid, JET_Move.Previous, MoveGrbit.MoveKeyNE);
                    Assert.Fail("Should have thrown EsentNoCurrentRecordException");
                }
                catch (EsentNoCurrentRecordException)
                {
                }

                this.VerifyCurrentRecord(tc.tableid, 1, typeof(EsentNoCurrentRecordException));
            }

            Windows8Api.JetSetCursorFilter(this.sesId, tc.tableid, filters, CursorFilterGrbit.None);
            Api.JetMove(this.sesId, tc.tableid, JET_Move.Next, MoveGrbit.MoveKeyNE);
            this.VerifyCurrentRecord(tc.tableid, 2);
        }
        public void JetIndexColumnToString()
        {
            JET_INDEX_COLUMN indexColumn = new JET_INDEX_COLUMN();

            Assert.AreEqual("JET_INDEX_COLUMN(0x0)", indexColumn.ToString());
        }