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"); }); }
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); }