Esempio 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");
            });
        }
Esempio n. 2
0
        public static Int64 GetNextSequence(TSequenceNames ASequence, TDataBase ADataBase = null)
        {
            Int64 NewSequenceValue = 0;

            TDBTransaction Transaction  = new TDBTransaction();
            bool           SubmissionOK = false;

            TDataBase db = DBAccess.Connect("GetNextSequence " + ASequence.ToString(), ADataBase);

            db.WriteTransaction(
                ref Transaction, ref SubmissionOK,
                delegate
            {
                NewSequenceValue = db.GetNextSequenceValue(ASequence.ToString(),
                                                           Transaction);

                SubmissionOK = true;
            });

            return(NewSequenceValue);
        }
        /// <summary>
        /// Creates a PPartnerAttribute Record out of data that is held in a data structure that is a p_partner_attribute
        /// representation.
        /// </summary>
        /// <param name="APPARec">Data structure that is p_partner_attribute representation.</param>
        /// <param name="AMainDS">DataSet to which the PPartnerAttribute Record should be added to.</param>
        /// <param name="ADataBase"></param>
        public void CreatePartnerContactDetailRecord(PPartnerAttributeRecord APPARec,
                                                     DataSet AMainDS, TDataBase ADataBase = null)
        {
            var MainDS = (PartnerImportExportTDS)AMainDS;

            PPartnerAttributeRow PartnerAttributeDR = MainDS.PPartnerAttribute.NewRowTyped(false);

            TDataBase      db          = DBAccess.Connect("CreatePartnerContactDetailRecord", ADataBase);
            TDBTransaction Transaction = new TDBTransaction();

            PartnerAttributeDR.PartnerKey = APPARec.PartnerKey;

            bool SubmitOK = false;

            db.WriteTransaction(ref Transaction,
                                ref SubmitOK,
                                delegate
            {
                PartnerAttributeDR.Sequence = Convert.ToInt32(db.GetNextSequenceValue(TSequenceNames.seq_partner_attribute_index.ToString(), Transaction));
                SubmitOK = true;
            });

            PartnerAttributeDR.AttributeType       = APPARec.AttributeType;
            PartnerAttributeDR.Index               = APPARec.Index;
            PartnerAttributeDR.Value               = APPARec.Value;
            PartnerAttributeDR.ValueCountry        = APPARec.ValueCountry;
            PartnerAttributeDR.Comment             = APPARec.Comment;
            PartnerAttributeDR.Primary             = APPARec.Primary;
            PartnerAttributeDR.WithinOrganisation  = APPARec.WithinOrganisation;
            PartnerAttributeDR.Specialised         = APPARec.Specialised;
            PartnerAttributeDR.Confidential        = APPARec.Confidential;
            PartnerAttributeDR.Current             = APPARec.Current;
            PartnerAttributeDR.NoLongerCurrentFrom = APPARec.NoLongerCurrentFrom;

            MainDS.PPartnerAttribute.Rows.Add(PartnerAttributeDR);
        }