﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » StrataFrame Application Framework - V1 » WinForms (How do I?)  » How to Prevent Concurrent Data Collisions</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Tue, 08 Sep 2026 11:33:11 GMT</lastBuildDate><ttl>20</ttl><item><title>How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31041.aspx</link><description>If two users modify data at the same time ( e.g. user 1 Reads data into a BO, Changes It, Users 2 reads same Data into a BO, User 1 then saves the BO, and then User 2 Attempts to Save the same data), a message comes up:&lt;br/&gt;&lt;br/&gt;Data Collision... Another user made changes to the same record..choose the changes to accept&amp;nbsp; (MyValue or Server Value)&lt;br/&gt;&lt;br/&gt;Now, this is fine most of the time (say for Master File Changes)&lt;br/&gt;&lt;br/&gt;However, If say an Invocie is being modified in this way, I NEVER want the second user to have their changes accepted. In this case, I would prefer if an error was raised and&amp;nbsp;a notification to this effect ended up in the BrokenRules Collection&lt;br/&gt;&lt;br/&gt;In my&amp;nbsp;BusinessObject, I would like to do something like:&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;if (DataCollision = true) {&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;this.AddBrokenRule(&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;"XXX"&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;, &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;"Another User has just amended the transaction "&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;);}&lt;/font&gt;&lt;/font&gt;&lt;p&gt;and I do not want the user to have the option to choose what is to be done.&lt;p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&amp;nbsp;</description><pubDate>Wed, 02 May 2012 11:15:45 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31178.aspx</link><description>Hi Trevor. Thanks for that whcih helped a lot.&lt;br/&gt;&lt;br/&gt;Part of my problem was that when I was initially creating my BO subclasses, I coded it all from scratch. I have now gone back in and recreated them but used the SF template (I did not think it was necessary to use these if creating a Subclass). For this reason I thin, it was missing out bits , paertculalry in IitializeComponent.&lt;br/&gt;&lt;br/&gt;Anyway, seem to have it workong now, so many thanks </description><pubDate>Wed, 02 May 2012 11:15:45 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31172.aspx</link><description>Ger, I'm new to SF but this is what&amp;nbsp;I use. &lt;br/&gt;&lt;br/&gt;public BaseBO()&amp;nbsp; : base()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //-- Add the necessary handlers&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.AddHandlers();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public BaseBO(IContainer container)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : base()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //This call adds the component to the given container.&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Container.Add(this);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //This call is required by the Component Designer.&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.InitializeComponent();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //-- Add the necessary handlers&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.AddHandlers();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Initializes a new instance of the BusinessObject1 class.&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="info"&amp;gt;The SerializationInfo for the object to create.&amp;lt;/param&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="context"&amp;gt;The StreamingContext for the source stream.&amp;lt;/param&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected BaseBO(SerializationInfo info, StreamingContext context)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : base(info, context)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //This call is required by the Component Designer.&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.InitializeComponent();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //-- Add the necessary handlers&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.AddHandlers();&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Adds the necessary handlers for the BaseBO class.&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;remarks&amp;gt;&amp;lt;/remarks&amp;gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void AddHandlers()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.CheckRulesOnCurrentRow += BaseBO_CheckRulesOnCurrentRow;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.SetDefaultValues += BaseBO_SetDefaultValues;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt;&lt;br/&gt;HTH&lt;br/&gt;&lt;br/&gt;Trevor</description><pubDate>Thu, 26 Apr 2012 07:31:14 GMT</pubDate><dc:creator>Trevor Hendricks</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31169.aspx</link><description>Anbody ?</description><pubDate>Wed, 25 Apr 2012 09:45:46 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31137.aspx</link><description>Hi. I am really stuck on this as I cannot seem to get the Base Code running from my specific CheckRulesOnCurrentRow&lt;br/&gt;&lt;br/&gt;Any feedback appreciated</description><pubDate>Tue, 17 Apr 2012 03:23:40 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31100.aspx</link><description>Hi Ivan. I am now trying to incorporate your suggestions into my live project &amp;nbsp;and am having two problems:&lt;br/&gt;&lt;br/&gt;1. In the Base SubClass, when I try to add InitializeComponent into each constructor, it comes up with a error in the compiler (InitializeComponent does not exist in the current context)..... now if I comment the line out, it seems to work ok... Do I need this line in ?&lt;br/&gt;&lt;br/&gt;2. In my actaul BO classes, I need to have specific code in the CheckRulesOnCurrentRow, so I want to run the Base Code in my subclass. When I put in&amp;nbsp; base.CheckRulesOnCurrentRow()&amp;nbsp; or&amp;nbsp;base.CheckRulesOnCurrentRow(CheckRulesEventArgs e) I &amp;nbsp;get a complier message --&amp;gt; CheckRulesOnCurrentRow can only appear on the left hand side of += or -=&lt;br/&gt;&lt;br/&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;</description><pubDate>Fri, 06 Apr 2012 07:12:09 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31099.aspx</link><description>You're welcome, Ger. &lt;span&gt;:cool:&lt;/span&gt;</description><pubDate>Thu, 05 Apr 2012 06:22:08 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31098.aspx</link><description>Hi Ivan.&lt;br/&gt;&lt;br/&gt;I have downloaded and extracted the amnded sample and it does what I want. Many thanks for putting in the time.&lt;br/&gt;&lt;br/&gt;I will need to have a look at the code to get an understanding of how it works.</description><pubDate>Thu, 05 Apr 2012 05:46:28 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31097.aspx</link><description>Hi Ger.&lt;br/&gt;&lt;br/&gt;I have changed your sample project and am posting it here back to you.&lt;br/&gt;I have created a new Base BO and added some code to it to demonstrate how you can accomplish what you are looking for.&lt;br/&gt;If you feel like it, have a look at the help file under "Application Framework" -&amp;gt; "Business Layer" -&amp;gt; "Common Business Object Tasks" -&amp;gt;"Creating and Checking Business Rules" to get the a better understanding of the flow.&lt;br/&gt;&lt;br/&gt;Hope it helps. &lt;span&gt;;)&lt;/span&gt;</description><pubDate>Wed, 04 Apr 2012 13:30:25 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31096.aspx</link><description>Hi Ivan. I am back to the concurrency issue &amp;nbsp;now. I have resolved being able to SubClass a Form (Uing C#) , thanks to another thread.&lt;br/&gt;&lt;br/&gt;To Recap.&amp;nbsp;If there is a DataColission, I want to add the fact to the BrokenRules collection and display&amp;nbsp;a Message&amp;nbsp;indicating this, and not allow the save. I have atached a Sample App. I have done the following in the App:&lt;br/&gt;&lt;br/&gt;In my Base Form, Set AutoHandleCollisions to False&lt;br/&gt;&lt;br/&gt;In the BO, left the CollisionNotificationType to RaiseEvent (The Default)&lt;br/&gt;&lt;br/&gt;In My Base BO, put code into the BO_ConcurrencyException event as follows:&lt;br/&gt;&lt;br/&gt;1. AddBrokenRule message&lt;br/&gt;&lt;br/&gt;2. e.ReSaveRecord = true&amp;nbsp; (Set the flag so it will attempt to Resave the data)&amp;nbsp;&lt;br/&gt;&lt;br/&gt;3.&amp;nbsp;&amp;nbsp;this.Save&amp;nbsp; (Attemp to Save the record, which then should trigger the broken rules)&lt;br/&gt;&lt;br/&gt;What is happening is that , for the Concurrency problem &amp;nbsp;record, The Broken Rule is NOT being displayed . It does not save the record (which is fine) but I want&amp;nbsp;it to display the BrokenRules to indicate to the user that there has been a problem.</description><pubDate>Wed, 04 Apr 2012 06:19:21 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31070.aspx</link><description>Hi Fabian. Thanks for replying.&lt;br/&gt;&lt;br/&gt;I have really simplified MySubClass, and taken SF out of the equation, so this must be something silly in the way I am coding the subclass. My Code now is: (Just trying for instance to&amp;nbsp;have all forms DarkGreen )&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000" size="3" face="Times New Roman"&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;public&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color: blue;"&gt;class&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;MyFormNotSF&lt;/span&gt;&lt;font color="#000000"&gt;: System.Windows.Forms.&lt;/font&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Form&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="color: blue;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;public&lt;/span&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;span style="color: blue;"&gt;void&lt;/span&gt;&lt;font color="#000000"&gt;InitializeComponent()&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;&lt;font color="#000000"&gt;.BackColor = System.Drawing.&lt;/font&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Color&lt;/span&gt;&lt;font color="#000000"&gt;.DarkGreen; }&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;font color="#000000" size="3" face="Times New Roman"&gt;and in my Form to use the SubClass:&lt;/font&gt;&lt;p&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;public artial&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;class&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" size="2" face="Consolas"&gt;&lt;font color="#2b91af" size="2" face="Consolas"&gt;&lt;font color="#2b91af" size="2" face="Consolas"&gt;Form3&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt; : &lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" size="2" face="Consolas"&gt;&lt;font color="#2b91af" size="2" face="Consolas"&gt;&lt;font color="#2b91af" size="2" face="Consolas"&gt;MyFormNotSF&amp;nbsp; ........&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#2b91af"&gt;&lt;/font&gt;&amp;nbsp;&lt;p&gt;&lt;font color="#2b91af"&gt;&lt;/font&gt;&amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;font color="#2b91af" size="2" face="Consolas"&gt;&lt;font color="#2b91af" size="2" face="Consolas"&gt;&lt;font color="#2b91af" size="2" face="Consolas"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;</description><pubDate>Wed, 28 Mar 2012 09:02:13 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31069.aspx</link><description>I not tried the example, but can put the code after initialicecomponent?, something like this in the constructor:&lt;br/&gt;&lt;span&gt;[code]&lt;/span&gt;&lt;div&gt;&lt;span style="background-color: white; font-family: Consolas; font-size: 13px; color: blue; "&gt;public&lt;/span&gt;&lt;span style="background-color: white; color: black; font-family: Consolas; font-size: 13px; "&gt;&amp;nbsp;CRUDForm(SomeDTO someDTO)&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; font-family: Consolas; font-size: 13px; color: blue; "&gt;base&lt;/span&gt;&lt;span style="background-color: white; color: black; font-family: Consolas; font-size: 13px; "&gt;(someDTO)&lt;/span&gt;&lt;div&gt;&lt;span style="background-color: white; color: black; font-family: Consolas; font-size: 13px; "&gt;{&lt;/span&gt;&lt;div&gt;&lt;span style="background-color: white; color: black; font-family: Consolas; font-size: 13px; "&gt;&amp;nbsp; &amp;nbsp; InitializeComponent();&lt;/span&gt;&lt;div&gt;&lt;span style="background-color: white; color: black; font-family: Consolas; font-size: 13px; "&gt;&amp;nbsp; &amp;nbsp; PropertyToChange = value; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;div&gt;&lt;span style="background-color: white; color: black; font-family: Consolas; font-size: 13px; "&gt;}&lt;/span&gt;&lt;div&gt;&lt;pre style="font-family: Consolas; font-size: 13px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span style="font-family: verdana, arial, tahoma; font-size: 12px; background-color: white; "&gt;[/code]&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;pre style="font-family: Consolas; font-size: 13px; color: black; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; "&gt;This have to work.&lt;/pre&gt;</description><pubDate>Tue, 27 Mar 2012 12:22:58 GMT</pubDate><dc:creator>Fabian R Silva, -</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31061.aspx</link><description>Hi Ger.&lt;br/&gt;&lt;br/&gt;I tried to have a look at your sample but couldn't find out how to solve your problem. As I told you, I do vb.net and tried to Google how the C# inheritance should behave, but didn't get to a conclusion why yours is not working. In my solutions, my base form is set with AutoHandleCollisions to False and all inherited forms from it also has it like that.&lt;br/&gt;&lt;br/&gt;So, I hope someone will jump in and clarify this for you.</description><pubDate>Mon, 26 Mar 2012 07:39:46 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31060.aspx</link><description>Hi Ivan.&lt;br/&gt;&lt;br/&gt;Any update on this. (Trying to subclass a and have the AutoHandleCollisions set to False in my SubClass...see attached Sample on laste thread)</description><pubDate>Mon, 26 Mar 2012 04:42:03 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31059.aspx</link><description>Hi Ivan.&lt;br/&gt;&lt;br/&gt;I have attached a Sample Project to illustrate the second problem I am having. Just trying to Subclass a StratatFrame Form and have the AutoHandleCollisions set to False in my SubClass&lt;br/&gt;&lt;br/&gt;In the Sample, My Subclass is called MyForm, and I have a line in it with this.AutoHandleCollisions = false&lt;br/&gt;&lt;br/&gt;When I run up my Form (Form2, called from Form1) , I have a button whcih displays a messagebox, indicating what the AutoHandleCollisions property is. It is saying True, even though my BaseClass has set it to false. (This may very well be the result of my Inexperience of Subclassing a Form and I may have left out something or not done it the correct way.&lt;br/&gt;&lt;br/&gt;(Sample project based on the Customers Tbale in the StartaFrame sample database)</description><pubDate>Thu, 22 Mar 2012 04:00:59 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31054.aspx</link><description>Hi Ivan.&lt;br/&gt;&lt;br/&gt;I will do up a small project to iluustrate both issues.</description><pubDate>Wed, 21 Mar 2012 07:52:34 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31052.aspx</link><description>[quote]1. Even though I have code to AddbrokenRules, it does not seem to be doing this. If there is a collision, it is not now showing the SF Collision Form and it is not saving (which is what I want) but I want to update the BrokenRule collection so that all errors are seen from the same place [/quote]&lt;br/&gt;&lt;br/&gt;If you let it try resaving, after adding the broken rule, won't it work the way you want?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[quote]2. In the above, for testing, I was setting the propeties on the Form Instances , rather than on a subclassed form, as I am having difficulty setting a Property on a SubClassed form. I have previosuly &amp;nbsp;added functionality to other controls successfully , but this is the first time I am trying to add functionality to a subclassed Form. The &lt;strong&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;AutoHandleCollisions = false&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt; does not seem to be doing anything. &amp;nbsp;My Code to subclass the form is:[/quote]&lt;br/&gt;&lt;br/&gt;Sorry, I am a bit confused on this one. Would you like to produce a small simple sample application of what you want to accomplish? Then it could be easier to follow it.</description><pubDate>Wed, 21 Mar 2012 07:30:26 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31047.aspx</link><description>Hi Ivan. Thanks for that. I can now get it to compile .&lt;br/&gt;&lt;br/&gt;I am still having two issues.&lt;br/&gt;&lt;br/&gt;1. Even though I have code to AddbrokenRules, it does not seem to be doing this. If there is a collision, it is not now showing the SF Collision Form and it is not saving (which is what I want) but I want to update the BrokenRule collection so that all errors are seen from the same place &lt;br/&gt;&lt;br/&gt;2. In the above, for testing, I was setting the propeties on the Form Instances , rather than on a subclassed form, as I am having difficulty setting a Property on a SubClassed form. I have previosuly &amp;nbsp;added functionality to other controls successfully , but this is the first time I am trying to add functionality to a subclassed Form. The &lt;strong&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;AutoHandleCollisions = false&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt; does not seem to be doing anything. &amp;nbsp;My Code to subclass the form is:&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#000000" size="3" face="Times New Roman"&gt;&lt;/font&gt;&lt;font color="#000000" size="3" face="Times New Roman"&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;StandardForm&lt;/span&gt; : MicroFour.StrataFrame.UI.Windows.Forms.&lt;span style="color: rgb(43, 145, 175);"&gt;StandardForm&lt;/span&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt;InitializeComponent()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.SuspendLayout();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;// &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;// StandardForm&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;// &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.ClientSize = &lt;span style="color: blue;"&gt;new&lt;/span&gt; System.Drawing.&lt;span style="color: rgb(43, 145, 175);"&gt;Size&lt;/span&gt;(294,274);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Name = &lt;span style="color: rgb(163, 21, 21);"&gt;"StandardForm"&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Load += &lt;span style="color: blue;"&gt;new&lt;/span&gt;System.&lt;span style="color: rgb(43, 145, 175);"&gt;EventHandler&lt;/span&gt;(&lt;span style="color: blue;"&gt;this&lt;/span&gt;.StandardForm_Load);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;font face="Times New Roman"&gt;&lt;font color="#888800"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.AutoHandleCollisions = &lt;span style="color: blue;"&gt;false&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#ff0000" size="2"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;&lt;font size="2"&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;&lt;font face="Arial"&gt;.ResumeLayout(&lt;span style="color: blue;"&gt;false&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;&lt;font size="5"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt;StandardForm_Load(&lt;span style="color: blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43, 145, 175);"&gt;EventArgs&lt;/span&gt; e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt; line-height: normal; text-autospace: ; mso-layout-grid-align: none;" class="MsoNormal"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;</description><pubDate>Tue, 20 Mar 2012 03:18:42 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31046.aspx</link><description>Hi Ger.&lt;br/&gt;&lt;br/&gt;C# is not my "mother tongue", but I guess it should be something like:&lt;br/&gt;&lt;br/&gt;&lt;span&gt;[codesnippet]private void YourBaseBO_ConcurrencyException(MicroFour.StrataFrame.Data.ConcurrencyExceptionEventArgs e) &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.AddBrokenRule(this.PrimaryKeyField, "Another user has amended this item at the same time");&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.ResaveRecord = False;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt;[/codesnippet]&lt;/span&gt;&lt;br/&gt;The e.ResaveRecord will take care of cancelling the Save.</description><pubDate>Mon, 19 Mar 2012 08:18:43 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31045.aspx</link><description>Hi Ivan. Thanks for replying. I&amp;nbsp; tam taking&amp;nbsp;your &amp;nbsp;advice and Put some code in to my Base Class for BO as follows:&lt;br/&gt;&lt;br/&gt;&lt;font size="2" face="Consolas"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;protected&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;override&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;void&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;  ConcurrencyException(MicroFour.StrataFrame.Data.&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" size="2" face="Consolas"&gt;&lt;font color="#2b91af" size="2" face="Consolas"&gt;&lt;font color="#2b91af" size="2" face="Consolas"&gt;ConcurrencyExceptionEventArgs&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt; e)&amp;nbsp;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#008000" size="2" face="Consolas"&gt;&lt;font color="#008000" size="2" face="Consolas"&gt;&lt;font color="#008000" size="2" face="Consolas"&gt;//--&amp;nbsp;Hhandle concurrency with our own Collision i.e. Want to add an error to Errors Collection&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#008000" size="2" face="Consolas"&gt;{&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#008000" size="2" face="Consolas"&gt;&lt;font color="#008000" size="2" face="Consolas"&gt;&lt;font color="#008000" size="2" face="Consolas"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;this&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;.AddBrokenRule(&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;this&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;.PrimaryKeyField, &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;&lt;font color="#a31515" size="2" face="Consolas"&gt;"Another user has amended this item at the same time"&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt;&lt;br/&gt;&lt;br/&gt;         }&lt;br/&gt;&lt;br/&gt;However, above gives a Compile error (...BusinessLyer.ConcurrencyException is not a function)&lt;br/&gt;&lt;br/&gt;I must have syntax wrong ??&lt;br/&gt;&lt;br/&gt;Also, other than just setting the AutoHandleCollisions on the form to false, it there amything else I neeed to do. If there is a Concurrency problem, all I want to do is add this to the BrokenRules collection and not show any other form, but definitiely NOT to save the data. Presumably if I have added a line to the BrokenRules, the form will NOT be saved&lt;br/&gt;&lt;br/&gt;&lt;/font&gt;&lt;/font&gt;</description><pubDate>Sun, 18 Mar 2012 15:04:51 GMT</pubDate><dc:creator>Ger Cannoll</dc:creator></item><item><title>RE: How to Prevent Concurrent Data Collisions</title><link>http://forum.strataframe.net/FindPost31044.aspx</link><description>Hi Ger.&lt;br/&gt;&lt;br/&gt;What I do is to handle collision myself, then I have control to do whatever I want. To accomplish this, on my Base BO, I handle the ConcurrencyException and then call my own method to take care of it: &lt;br/&gt;&lt;br/&gt;&lt;span&gt;[codesnippet]&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub _PFNBaseBO_ConcurrencyException(ByVal e As MicroFour.StrataFrame.Data.ConcurrencyExceptionEventArgs) Handles Me.ConcurrencyException&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- handle concurrency with our own Collision form&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.HandleConcurrency(e)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;br/&gt;[/codesnippet]&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Then, I use my own dialog to show collisions, for the fields I want, formatted in the way I want. You will find all collisions in the e.Collision Concurrency Exception Event Argument. &lt;br/&gt;Also, I guess you can just set the BO CollisionNotificationType at form level to ThrowException, which will have all information about what happened in the collision and you can deal with that. &lt;br/&gt;There are some good posts on collisions in the Forum, here are some links to get you started:&lt;br/&gt;&lt;br/&gt;&lt;a href="http://forum.strataframe.net/FindPost27465.aspx"&gt;http://forum.strataframe.net/FindPost27465.aspx&lt;/a&gt;&lt;br/&gt;&lt;a href="http://forum.strataframe.net/FindPost15123.aspx"&gt;http://forum.strataframe.net/FindPost15123.aspx&lt;/a&gt;</description><pubDate>Sat, 17 Mar 2012 07:29:10 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item></channel></rss>