Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 864d1c3c3cd8df4e3a2692faf8776e05 > files > 1392

db4o-doc-7.4-2.fc13.i686.rpm

<html>
  <head>
    <META http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Rollback And Cache</title>
    <link rel="stylesheet" type="text/css" href="../../../../style.css">
  </head>
  <body>
    <div class="CommonContent">
      <div class="CommonContentArea">
        <h1>Rollback And Cache</h1><script>
//We attach this function to a browser object as a variable so that if multiple of these blocks are
//present on the same page, then they will simply over-write eachother with the same function instead
//of generating a naming collision.
window.WikiCodeFormattingCopyToClipboard = function copyToClipboard(sID){
	var sContent = document.getElementById(sID).innerText;
	if( window.clipboardData && clipboardData.setData )
	{
		clipboardData.setData("Text", sContent);
	}
	else
	{
		alert("You must enable javascript access to your clipboard for this feature to work. Please referr to your browser documentation or Google search for instructions.");
	}
}
</script><p><br></p><p>Suppose we have <a href="car.html" class="wikiLink">Car</a>, <a href="pilot.html" class="wikiLink">Pilot</a> and <a href="id.html" class="wikiLink">Id</a>
classes stored in the database. Car class is activatable, others are not. We
will modify the car and rollback the transaction:</p>



<span name="cs_wiki_filter" csw_filters="cs">

<div class="FormattedSourceCode"><div class="fscHeader"><span class="fscFileName">TPRollback.cs: <span class="fscMemberName">ModifyAndRollback</span></span></div><div class="fscCode"><pre ID="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66"><div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><span style="color: #008080;">01</span><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/><span style="color: #0000FF;">private</span><span style="color: #000000;"> </span><span style="color: #0000FF;">static</span><span style="color: #000000;"> </span><span style="color: #0000FF;">void</span><span style="color: #000000;"> ModifyAndRollback()
</span><span style="color: #008080;">02</span><span style="color: #000000;"><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_48_929_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_48_929_Open_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_48_929_Closed_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_48_929_Closed_Text').style.display='inline';"/><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_48_929_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_48_929_Closed_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_48_929_Open_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_48_929_Open_Text').style.display='inline';"/>        </span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_48_929_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_48_929_Open_Text"><span style="color: #000000;">{
</span><span style="color: #008080;">03</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>            IObjectContainer container </span><span style="color: #000000;">=</span><span style="color: #000000;"> Database(ConfigureTP());
</span><span style="color: #008080;">04</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>            </span><span style="color: #0000FF;">if</span><span style="color: #000000;"> (container </span><span style="color: #000000;">!=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">null</span><span style="color: #000000;">)
</span><span style="color: #008080;">05</span><span style="color: #000000;"><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_163_919_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_163_919_Open_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_163_919_Closed_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_163_919_Closed_Text').style.display='inline';"/><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_163_919_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_163_919_Closed_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_163_919_Open_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_163_919_Open_Text').style.display='inline';"/>            </span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_163_919_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_163_919_Open_Text"><span style="color: #000000;">{
</span><span style="color: #008080;">06</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                </span><span style="color: #0000FF;">try</span><span style="color: #000000;">
</span><span style="color: #008080;">07</span><span style="color: #000000;"><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_201_808_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_201_808_Open_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_201_808_Closed_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_201_808_Closed_Text').style.display='inline';"/><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_201_808_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_201_808_Closed_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_201_808_Open_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_201_808_Open_Text').style.display='inline';"/>                </span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_201_808_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_201_808_Open_Text"><span style="color: #000000;">{
</span><span style="color: #008080;">08</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    </span><span style="color: #008000;">//</span><span style="color: #008000;"> create a car</span><span style="color: #008000;">
</span><span style="color: #008080;">09</span><span style="color: #008000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/></span><span style="color: #000000;">                    Car car </span><span style="color: #000000;">=</span><span style="color: #000000;"> (Car)container.QueryByExample(</span><span style="color: #0000FF;">new</span><span style="color: #000000;"> Car(</span><span style="color: #0000FF;">null</span><span style="color: #000000;">, </span><span style="color: #0000FF;">null</span><span style="color: #000000;">))
</span><span style="color: #008080;">10</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                            [</span><span style="color: #800080;">0</span><span style="color: #000000;">];
</span><span style="color: #008080;">11</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    System.Console.WriteLine(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Initial car: </span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> car </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">(</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">
</span><span style="color: #008080;">12</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                            </span><span style="color: #000000;">+</span><span style="color: #000000;"> container.Ext().GetID(car) </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">)</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">);
</span><span style="color: #008080;">13</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    car.Model </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Ferrari</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">;
</span><span style="color: #008080;">14</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    car.Pilot </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> Pilot(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Michael Schumacher</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">, </span><span style="color: #800080;">123</span><span style="color: #000000;">);
</span><span style="color: #008080;">15</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    container.Rollback();
</span><span style="color: #008080;">16</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    System.Console.WriteLine(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Car after rollback: </span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> car </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">(</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">
</span><span style="color: #008080;">17</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                            </span><span style="color: #000000;">+</span><span style="color: #000000;"> container.Ext().GetID(car) </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">)</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">);
</span><span style="color: #008080;">18</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/>                }</span></span><span style="color: #000000;">
</span><span style="color: #008080;">19</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                </span><span style="color: #0000FF;">finally</span><span style="color: #000000;">
</span><span style="color: #008080;">20</span><span style="color: #000000;"><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_849_905_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_849_905_Open_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_849_905_Closed_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_849_905_Closed_Text').style.display='inline';"/><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_849_905_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_849_905_Closed_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_849_905_Open_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_849_905_Open_Text').style.display='inline';"/>                </span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_849_905_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyAndRollback_258_66_849_905_Open_Text"><span style="color: #000000;">{
</span><span style="color: #008080;">21</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    CloseDatabase();
</span><span style="color: #008080;">22</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/>                }</span></span><span style="color: #000000;">
</span><span style="color: #008080;">23</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/>            }</span></span><span style="color: #000000;">
</span><span style="color: #008080;">24</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockEnd.gif" align="top"/>        }</span></span></div></pre></div></div>

</span>

<span name="cs_wiki_filter" csw_filters="vb">

<div class="FormattedSourceCode"><div class="fscHeader"><span class="fscFileName">TPRollback.vb: <span class="fscMemberName">ModifyAndRollback</span></span></div><div class="fscCode"><pre ID="....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyAndRollback_388_66"><div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><span style="color: #008080;">01</span><img id="....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyAndRollback_388_66_15_858_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyAndRollback_388_66_15_858_Open_Text').style.display='none'; document.getElementById('....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyAndRollback_388_66_15_858_Closed_Image').style.display='inline'; document.getElementById('....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyAndRollback_388_66_15_858_Closed_Text').style.display='inline';"/><img id="....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyAndRollback_388_66_15_858_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyAndRollback_388_66_15_858_Closed_Text').style.display='none'; document.getElementById('....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyAndRollback_388_66_15_858_Open_Image').style.display='inline'; document.getElementById('....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyAndRollback_388_66_15_858_Open_Text').style.display='inline';"/><span style="color: #0000FF;">Private</span><span style="color: #000000;"> </span><span style="color: #0000FF;">Shared</span><span style="color: #000000;"> </span><span id="....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyAndRollback_388_66_15_858_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">Sub ModifyAndRollback()</span><span id="....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyAndRollback_388_66_15_858_Open_Text"><span style="color: #0000FF;">Sub</span><span style="color: #000000;"> ModifyAndRollback()
</span><span style="color: #008080;">02</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>            </span><span style="color: #0000FF;">Dim</span><span style="color: #000000;"> container </span><span style="color: #0000FF;">As</span><span style="color: #000000;"> IObjectContainer </span><span style="color: #000000;">=</span><span style="color: #000000;"> Database(ConfigureTP())
</span><span style="color: #008080;">03</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>            </span><span style="color: #0000FF;">If</span><span style="color: #000000;"> container </span><span style="color: #0000FF;">IsNot</span><span style="color: #000000;"> </span><span style="color: #0000FF;">Nothing</span><span style="color: #000000;"> </span><span style="color: #0000FF;">Then</span><span style="color: #000000;">
</span><span style="color: #008080;">04</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                </span><span style="color: #0000FF;">Try</span><span style="color: #000000;">
</span><span style="color: #008080;">05</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    </span><span style="color: #008000;">'</span><span style="color: #008000;"> create a car</span><span style="color: #008000;">
</span><span style="color: #008080;">06</span><span style="color: #008000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/></span><span style="color: #000000;">                    </span><span style="color: #0000FF;">Dim</span><span style="color: #000000;"> car </span><span style="color: #0000FF;">As</span><span style="color: #000000;"> Car </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">DirectCast</span><span style="color: #000000;">(container.QueryByExample(</span><span style="color: #0000FF;">New</span><span style="color: #000000;"> Car(</span><span style="color: #0000FF;">Nothing</span><span style="color: #000000;">, </span><span style="color: #0000FF;">Nothing</span><span style="color: #000000;">))(</span><span style="color: #800080;">0</span><span style="color: #000000;">), Car)
</span><span style="color: #008080;">07</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    System.Console.WriteLine(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Initial car: </span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> car.ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">(</span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> container.Ext().GetID(car).ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">)</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">)
</span><span style="color: #008080;">08</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    car.Model </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Ferrari</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">
</span><span style="color: #008080;">09</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    car.Pilot </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">New</span><span style="color: #000000;"> Pilot(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Michael Schumacher</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">, </span><span style="color: #800080;">123</span><span style="color: #000000;">)
</span><span style="color: #008080;">10</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    container.Rollback()
</span><span style="color: #008080;">11</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    System.Console.WriteLine(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Car after rollback: </span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> car.ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">(</span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> container.Ext().GetID(car).ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">)</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">)
</span><span style="color: #008080;">12</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                </span><span style="color: #0000FF;">Finally</span><span style="color: #000000;">
</span><span style="color: #008080;">13</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    CloseDatabase()
</span><span style="color: #008080;">14</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                </span><span style="color: #0000FF;">End</span><span style="color: #000000;"> </span><span style="color: #0000FF;">Try</span><span style="color: #000000;">
</span><span style="color: #008080;">15</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>            </span><span style="color: #0000FF;">End</span><span style="color: #000000;"> </span><span style="color: #0000FF;">If</span><span style="color: #000000;">
</span><span style="color: #008080;">16</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockEnd.gif" align="top"/>        </span><span style="color: #0000FF;">End Sub</span></span></div></pre></div></div>

</span>

<p>If the transaction was going on normally (commit), we would
have had the car modified in the database as it is supported by Transparent
Persistence. However, as the transaction was rolled back - no modifications
should be done to the database. The result that is printed to the screen is
taken from the reference cache, so it will show modified objects. That is
confusing and should be fixed:</p>



<span name="cs_wiki_filter" csw_filters="cs">

<div class="FormattedSourceCode"><div class="fscHeader"><span class="fscFileName">TPRollback.cs: <span class="fscMemberName">ModifyRollbackAndCheck</span></span></div><div class="fscCode"><pre ID="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71"><div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><span style="color: #008080;">01</span><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/><span style="color: #0000FF;">private</span><span style="color: #000000;"> </span><span style="color: #0000FF;">static</span><span style="color: #000000;"> </span><span style="color: #0000FF;">void</span><span style="color: #000000;"> ModifyRollbackAndCheck()
</span><span style="color: #008080;">02</span><span style="color: #000000;"><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_53_1331_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_53_1331_Open_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_53_1331_Closed_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_53_1331_Closed_Text').style.display='inline';"/><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_53_1331_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_53_1331_Closed_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_53_1331_Open_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_53_1331_Open_Text').style.display='inline';"/>        </span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_53_1331_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_53_1331_Open_Text"><span style="color: #000000;">{
</span><span style="color: #008080;">03</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>            IObjectContainer container </span><span style="color: #000000;">=</span><span style="color: #000000;"> Database(ConfigureTP());
</span><span style="color: #008080;">04</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>            </span><span style="color: #0000FF;">if</span><span style="color: #000000;"> (container </span><span style="color: #000000;">!=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">null</span><span style="color: #000000;">)
</span><span style="color: #008080;">05</span><span style="color: #000000;"><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_168_1321_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_168_1321_Open_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_168_1321_Closed_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_168_1321_Closed_Text').style.display='inline';"/><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_168_1321_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_168_1321_Closed_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_168_1321_Open_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_168_1321_Open_Text').style.display='inline';"/>            </span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_168_1321_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_168_1321_Open_Text"><span style="color: #000000;">{
</span><span style="color: #008080;">06</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                </span><span style="color: #0000FF;">try</span><span style="color: #000000;">
</span><span style="color: #008080;">07</span><span style="color: #000000;"><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_206_1210_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_206_1210_Open_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_206_1210_Closed_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_206_1210_Closed_Text').style.display='inline';"/><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_206_1210_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_206_1210_Closed_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_206_1210_Open_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_206_1210_Open_Text').style.display='inline';"/>                </span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_206_1210_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_206_1210_Open_Text"><span style="color: #000000;">{
</span><span style="color: #008080;">08</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    </span><span style="color: #008000;">//</span><span style="color: #008000;"> create a car</span><span style="color: #008000;">
</span><span style="color: #008080;">09</span><span style="color: #008000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/></span><span style="color: #000000;">                    Car car </span><span style="color: #000000;">=</span><span style="color: #000000;"> (Car)container.QueryByExample(</span><span style="color: #0000FF;">new</span><span style="color: #000000;"> Car(</span><span style="color: #0000FF;">null</span><span style="color: #000000;">, </span><span style="color: #0000FF;">null</span><span style="color: #000000;">))
</span><span style="color: #008080;">10</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                            [</span><span style="color: #800080;">0</span><span style="color: #000000;">];
</span><span style="color: #008080;">11</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    Pilot pilot </span><span style="color: #000000;">=</span><span style="color: #000000;"> car.Pilot;
</span><span style="color: #008080;">12</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    System.Console.WriteLine(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Initial car: </span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> car </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">(</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">
</span><span style="color: #008080;">13</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                            </span><span style="color: #000000;">+</span><span style="color: #000000;"> container.Ext().GetID(car) </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">)</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">);
</span><span style="color: #008080;">14</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    System.Console.WriteLine(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Initial pilot: </span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> pilot </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">(</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">
</span><span style="color: #008080;">15</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                            </span><span style="color: #000000;">+</span><span style="color: #000000;"> container.Ext().GetID(pilot) </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">)</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">);
</span><span style="color: #008080;">16</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    car.Model </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Ferrari</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">;
</span><span style="color: #008080;">17</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    car.ChangePilot(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Michael Schumacher</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">, </span><span style="color: #800080;">123</span><span style="color: #000000;">);
</span><span style="color: #008080;">18</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    container.Rollback();
</span><span style="color: #008080;">19</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    container.Deactivate(car, Int32.MaxValue);
</span><span style="color: #008080;">20</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    System.Console.WriteLine(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Car after rollback: </span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> car </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">(</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">
</span><span style="color: #008080;">21</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                            </span><span style="color: #000000;">+</span><span style="color: #000000;"> container.Ext().GetID(car) </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">)</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">);
</span><span style="color: #008080;">22</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    System.Console.WriteLine(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Pilot after rollback: </span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> pilot </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">(</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">
</span><span style="color: #008080;">23</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                            </span><span style="color: #000000;">+</span><span style="color: #000000;"> container.Ext().GetID(pilot) </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">)</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">);
</span><span style="color: #008080;">24</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/>                }</span></span><span style="color: #000000;">
</span><span style="color: #008080;">25</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                </span><span style="color: #0000FF;">finally</span><span style="color: #000000;">
</span><span style="color: #008080;">26</span><span style="color: #000000;"><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_1251_1307_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_1251_1307_Open_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_1251_1307_Closed_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_1251_1307_Closed_Text').style.display='inline';"/><img id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_1251_1307_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_1251_1307_Closed_Text').style.display='none'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_1251_1307_Open_Image').style.display='inline'; document.getElementById('....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_1251_1307_Open_Text').style.display='inline';"/>                </span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_1251_1307_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="....RollbackCS.ZipsTPRollback.Cs_TPRollback.Cs_ModifyRollbackAndCheck_930_71_1251_1307_Open_Text"><span style="color: #000000;">{
</span><span style="color: #008080;">27</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    CloseDatabase();
</span><span style="color: #008080;">28</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/>                }</span></span><span style="color: #000000;">
</span><span style="color: #008080;">29</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/>            }</span></span><span style="color: #000000;">
</span><span style="color: #008080;">30</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockEnd.gif" align="top"/>        }</span></span></div></pre></div></div>

</span>

<span name="cs_wiki_filter" csw_filters="vb">

<div class="FormattedSourceCode"><div class="fscHeader"><span class="fscFileName">TPRollback.vb: <span class="fscMemberName">ModifyRollbackAndCheck</span></span></div><div class="fscCode"><pre ID="....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyRollbackAndCheck_1065_71"><div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><span style="color: #008080;">01</span><img id="....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyRollbackAndCheck_1065_71_15_1251_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyRollbackAndCheck_1065_71_15_1251_Open_Text').style.display='none'; document.getElementById('....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyRollbackAndCheck_1065_71_15_1251_Closed_Image').style.display='inline'; document.getElementById('....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyRollbackAndCheck_1065_71_15_1251_Closed_Text').style.display='inline';"/><img id="....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyRollbackAndCheck_1065_71_15_1251_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyRollbackAndCheck_1065_71_15_1251_Closed_Text').style.display='none'; document.getElementById('....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyRollbackAndCheck_1065_71_15_1251_Open_Image').style.display='inline'; document.getElementById('....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyRollbackAndCheck_1065_71_15_1251_Open_Text').style.display='inline';"/><span style="color: #0000FF;">Private</span><span style="color: #000000;"> </span><span style="color: #0000FF;">Shared</span><span style="color: #000000;"> </span><span id="....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyRollbackAndCheck_1065_71_15_1251_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">Sub ModifyRollbackAndCheck()</span><span id="....RollbackVB.ZipsTPRollback.Vb_TPRollback.Vb_ModifyRollbackAndCheck_1065_71_15_1251_Open_Text"><span style="color: #0000FF;">Sub</span><span style="color: #000000;"> ModifyRollbackAndCheck()
</span><span style="color: #008080;">02</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>            </span><span style="color: #0000FF;">Dim</span><span style="color: #000000;"> container </span><span style="color: #0000FF;">As</span><span style="color: #000000;"> IObjectContainer </span><span style="color: #000000;">=</span><span style="color: #000000;"> Database(ConfigureTP())
</span><span style="color: #008080;">03</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>            </span><span style="color: #0000FF;">If</span><span style="color: #000000;"> container </span><span style="color: #0000FF;">IsNot</span><span style="color: #000000;"> </span><span style="color: #0000FF;">Nothing</span><span style="color: #000000;"> </span><span style="color: #0000FF;">Then</span><span style="color: #000000;">
</span><span style="color: #008080;">04</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                </span><span style="color: #0000FF;">Try</span><span style="color: #000000;">
</span><span style="color: #008080;">05</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    </span><span style="color: #008000;">'</span><span style="color: #008000;"> create a car</span><span style="color: #008000;">
</span><span style="color: #008080;">06</span><span style="color: #008000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/></span><span style="color: #000000;">                    </span><span style="color: #0000FF;">Dim</span><span style="color: #000000;"> car </span><span style="color: #0000FF;">As</span><span style="color: #000000;"> Car </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">DirectCast</span><span style="color: #000000;">(container.QueryByExample(</span><span style="color: #0000FF;">New</span><span style="color: #000000;"> Car(</span><span style="color: #0000FF;">Nothing</span><span style="color: #000000;">, </span><span style="color: #0000FF;">Nothing</span><span style="color: #000000;">))(</span><span style="color: #800080;">0</span><span style="color: #000000;">), Car)
</span><span style="color: #008080;">07</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    </span><span style="color: #0000FF;">Dim</span><span style="color: #000000;"> pilot </span><span style="color: #0000FF;">As</span><span style="color: #000000;"> Pilot </span><span style="color: #000000;">=</span><span style="color: #000000;"> car.Pilot
</span><span style="color: #008080;">08</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    System.Console.WriteLine(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Initial car: </span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> car.ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">(</span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> container.Ext().GetID(car).ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">)</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">)
</span><span style="color: #008080;">09</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    System.Console.WriteLine(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Initial pilot: </span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> pilot.ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">(</span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> container.Ext().GetID(pilot).ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">)</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">)
</span><span style="color: #008080;">10</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    car.Model </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Ferrari</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">
</span><span style="color: #008080;">11</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    car.ChangePilot(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Michael Schumacher</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">, </span><span style="color: #800080;">123</span><span style="color: #000000;">)
</span><span style="color: #008080;">12</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    container.Rollback()
</span><span style="color: #008080;">13</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    container.Deactivate(car, Int32.MaxValue)
</span><span style="color: #008080;">14</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    System.Console.WriteLine(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Car after rollback: </span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> car.ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">(</span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> container.Ext().GetID(car).ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">)</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">)
</span><span style="color: #008080;">15</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    System.Console.WriteLine(</span><span style="color: #800000;">&quot;</span><span style="color: #800000;">Pilot after rollback: </span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> pilot.ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">(</span><span style="color: #800000;">&quot;</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> container.Ext().GetID(pilot).ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">&quot;</span><span style="color: #800000;">)</span><span style="color: #800000;">&quot;</span><span style="color: #000000;">)
</span><span style="color: #008080;">16</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                </span><span style="color: #0000FF;">Finally</span><span style="color: #000000;">
</span><span style="color: #008080;">17</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                    CloseDatabase()
</span><span style="color: #008080;">18</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>                </span><span style="color: #0000FF;">End</span><span style="color: #000000;"> </span><span style="color: #0000FF;">Try</span><span style="color: #000000;">
</span><span style="color: #008080;">19</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/>            </span><span style="color: #0000FF;">End</span><span style="color: #000000;"> </span><span style="color: #0000FF;">If</span><span style="color: #000000;">
</span><span style="color: #008080;">20</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockEnd.gif" align="top"/>        </span><span style="color: #0000FF;">End Sub</span></span></div></pre></div></div>

</span>

<p>Here we've added a <code>deactivate</code> call for the car
object. This call is used to clear the reference cache and its action is
reversed to <code>activate</code>. </p>

<p>We've used Integer.MAX_VALUE/Int32.MaxValue to deactivate
car fields to the maximum possible depth. Thus we can be sure that all the car
fields will be re-read from the database again (no outdated values from the
reference cache), but the trade-off is that all child objects will be
deactivated and read from the database too. You can see it on Pilot object.
This behaviour is preserved for both activatable and non-activatable objects.</p></div>
    </div>
    <div id="footer">
					This revision (1) was last Modified 2008-03-02T09:33:06 by Tetyana.
				</div>
  </body>
</html>