Ejemplo n.º 1
0
        public void TestSequence()
        {
            TDBTransaction t            = new TDBTransaction();
            TDataBase      db           = DBAccess.Connect("TestInsertMultipleRows", FDataBase);
            bool           SubmissionOK = true;

            db.WriteTransaction(ref t,
                                ref SubmissionOK,
                                delegate
            {
                Int64 PreviousSequence = db.GetNextSequenceValue("seq_statement_number", t);
                Int64 NextSequence     = db.GetNextSequenceValue("seq_statement_number", t);

                Assert.AreEqual(PreviousSequence + 1, NextSequence, "next sequence is one more than previous sequence");
                Int64 CurrentSequence = db.GetCurrentSequenceValue("seq_statement_number", t);
                Assert.AreEqual(CurrentSequence, NextSequence, "current sequence value should be the last used sequence value");
                db.RestartSequence("seq_statement_number", t, CurrentSequence);
                Int64 CurrentSequenceAfterReset = db.GetCurrentSequenceValue("seq_statement_number", t);
                Assert.AreEqual(CurrentSequence, CurrentSequenceAfterReset, "after reset we want the same current sequence");
                Int64 NextSequenceAfterReset = db.GetNextSequenceValue("seq_statement_number", t);
                Assert.AreEqual(CurrentSequence + 1, NextSequenceAfterReset,
                                "after reset we don't want the previous last sequence number to be repeated");
            });
        }