예제 #1
0
        public void testLobOpenWrite5()
        {
            ObjectId id  = ObjectId.GenerateNewId();
            DBLob    lob = cl.CreateLob(id);

            lob.Close();

            DBLob lob1 = cl.OpenLob(id, DBLob.SDB_LOB_WRITE);
            DBLob lob2 = cl.OpenLob(id, DBLob.SDB_LOB_WRITE);

            lob1.Lock(100, -1);

            try {
                lob2.Lock(90, 11);
                Assert.Fail("failure expected");
            } catch (BaseException e) {
                Console.WriteLine(e);
            }

            lob2.Lock(90, 10);

            lob1.Close();

            lob2.Lock(90, 20);
            lob2.Close();
        }
예제 #2
0
        public void testLobOpenWrite2()
        {
            ObjectId id  = ObjectId.GenerateNewId();
            DBLob    lob = cl.CreateLob(id);

            lob.Close();

            lob = cl.OpenLob(id, DBLob.SDB_LOB_WRITE);
            lob.Lock(100, 5);
            lob.Lock(90, 5);
            lob.Lock(80, 5);
            lob.Lock(115, 5);
            lob.Lock(110, 10);
            lob.Lock(112, 5);
            lob.Lock(75, 10);
            lob.Lock(87, 20);
            lob.Close();

            lob = cl.OpenLob(id, DBLob.SDB_LOB_WRITE);
            lob.Lock(100, 5);
            lob.Lock(90, 5);
            lob.Lock(80, 5);
            lob.Lock(115, 5);
            lob.Lock(110, 10);
            lob.Lock(112, 5);
            lob.Lock(75, 10);
            lob.Lock(87, 20);
            lob.Close();
        }