﻿<?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 / Business Objects and Data Access (How do I?) </title><generator>InstantForum.NET v4.1.4</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>forum@strataframe.net</webMaster><lastBuildDate>Wed, 10 Mar 2010 00:51:53 GMT</lastBuildDate><ttl>20</ttl><item><title>Question about the design architecture</title><link>http://forum.strataframe.net/Topic26390-6-1.aspx</link><description>Does SF implement proper layered separation of concerns (SoC), such as the presentation (PLL), business (BLL), and data layers (DAL)? &lt;br&gt;&lt;br&gt;Additionally, does the BLL use a Domain Model pattern with a separate Repository pattern for mapping entities to data access operations?&lt;br&gt;&lt;br&gt;Also, does the PLL use an SoC pattern, such as MVC, MVP, or PM?&lt;br&gt;&lt;br&gt;And finally, can I use dependency injection?&lt;br&gt;&lt;br&gt;Thanks.&lt;br&gt;</description><pubDate>Tue, 09 Mar 2010 17:42:04 GMT</pubDate><dc:creator>Michael Gonzalez</dc:creator></item><item><title>System.ObjectDisposedException</title><link>http://forum.strataframe.net/Topic26366-6-1.aspx</link><description>Hi Folks&lt;P&gt;We just started receiving quite a few of these errors and they seem to only occur when we do data access. Have you ever seen this before?&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;Rich&lt;/P&gt;&lt;P&gt;[quote]&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;** Summary **&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;---------------&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;This message contains events 1 to 2 from the total of 2 events scheduled for this notification.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;There were 0 events left in the buffer at the beginning of this notification.&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Consolas color=#000000 size=3&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas color=#000000 size=3&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;** Application Information **&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;---------------&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Application domain: /LM/W3SVC/33230916/Root/129122460609687500&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Trust level: Full&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Application Virtual Path: /...&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Application Path: D:\... Machine name: ....&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas color=#000000 size=3&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas color=#000000 size=3&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;** Events **&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;---------------&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Event code: 3005&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Event message: An unhandled exception has occurred.&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Event time: 3/5/2010 7:38:42 PM&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Event time (UTC): 3/6/2010 12:38:42 AM&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Event ID: be9467923d77453ba4be3a5d151aec09 Event sequence: 46459 Event occurrence: 285 Event detail code: 0&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas color=#000000 size=3&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Process information:&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Process ID: 7872&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Process name: w3wp.exe&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Account name: NT AUTHORITY\NETWORK SERVICE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas color=#000000 size=3&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Exception information:&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Exception type: System.ObjectDisposedException&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Exception message: Safe handle has been closed&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas color=#000000 size=3&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Request information:&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT color=#000000&gt;&lt;FONT size=3&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Request URL: &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="https://xxx/"&gt;&lt;FONT face=Consolas size=3&gt;https://xxx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Request path: /XXX/LookUpPages/TransportationMode.aspx&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;User host address: XXX.XXX.XXX.XXX&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;User: 1254567890&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Is authenticated: True&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Authentication Type: Forms&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Thread account name: NT AUTHORITY\NETWORK SERVICE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas color=#000000 size=3&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Thread information:&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Thread ID: 1&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Thread account name: NT AUTHORITY\NETWORK SERVICE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Is impersonating: False&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Stack trace:&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;at System.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean&amp;amp; success)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at SNINativeMethodWrapper.SNIPacketReset(SafeHandle pConn, IOType ioType, SafeHandle packet)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Data.SqlClient.TdsParserStateObject.WriteSni()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Data.SqlClient.TdsParserStateObject.WritePacket(Byte flushMode)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Data.SqlClient.TdsParserStateObject.ExecuteFlush()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Data.SqlClient.TdsParser.TdsExecuteRPC(_SqlRPC[] rpcArray, Int32 timeout, Boolean inSchema, SqlNotificationRequest notificationRequest, TdsParserStateObject stateObj, Boolean isCommandProc)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at MicroFour.StrataFrame.Data.DbDataSourceItem.GetDataTable(DbCommand Command, OnChangeEventHandler CallBack)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at MicroFour.StrataFrame.Data.SqlDataSourceItem.GetDataTable(DbCommand Command, OnChangeEventHandler CallBack)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at MicroFour.StrataFrame.Data.DbDataSourceItem.ExecuteStoredProcedure(String SprocName, DbCommandExecutionType ExecutionType, DbParameter[] Parameters)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at MicroFour.StrataFrame.Business.BusinessLayer.FillByStoredProcedure(String ProcedureName, DbParameter[] Parameters)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at BO.Lookup.TravelMode.Fill()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at LookUpPages_TransportationMode.Page_Load(Object sender, EventArgs e)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Web.UI.Control.OnLoad(EventArgs e)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Web.UI.Control.LoadRecursive()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;P&gt;[/quote]&lt;/P&gt;&lt;P&gt;[quote]&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;---------------&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Event code: 3005&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Event message: An unhandled exception has occurred.&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Event time: 3/5/2010 7:38:43 PM&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Event time (UTC): 3/6/2010 12:38:43 AM&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Event ID: b7c1c9a7dd87485787c6d62a5206d596 Event sequence: 46461 Event occurrence: 286 Event detail code: 0&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas color=#000000 size=3&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Process information:&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Process ID: 7872&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Process name: w3wp.exe&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Account name: NT AUTHORITY\NETWORK SERVICE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas color=#000000 size=3&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Exception information:&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Exception type: System.ObjectDisposedException&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Exception message: Safe handle has been closed&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas color=#000000 size=3&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Request information:&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT color=#000000&gt;&lt;FONT size=3&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Request URL: &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="https://..../"&gt;&lt;FONT face=Consolas size=3&gt;https://....&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Request path: /XXX/GeneralError.aspx&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;User host address: XXX.XXX.XXX.XX&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;User: 124567890&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Is authenticated: True&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Authentication Type: Forms&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Thread account name: NT AUTHORITY\NETWORK SERVICE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Consolas color=#000000 size=3&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Consolas color=#000000 size=3&gt;Thread information:&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Thread ID: 1&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Thread account name: NT AUTHORITY\NETWORK SERVICE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Is impersonating: False&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;Stack trace:&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;at BO.PCSDataPackage.IsSubPackage(Int64 DataPackageID)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at Controls_Header.Page_Load(Object sender, EventArgs e)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Web.UI.Control.OnLoad(EventArgs e)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Web.UI.Control.LoadRecursive()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Web.UI.Control.LoadRecursive()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Web.UI.Control.LoadRecursive()&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Consolas&gt;&lt;SPAN style="mso-spacerun: yes"&gt;   &lt;/SPAN&gt;at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;P&gt;[/quote]</description><pubDate>Tue, 09 Mar 2010 09:11:01 GMT</pubDate><dc:creator>Rich Grimes</dc:creator></item><item><title>The given key was not present in the dictionary error</title><link>http://forum.strataframe.net/Topic23264-6-1.aspx</link><description>Hi,&lt;br&gt;&lt;br&gt;I am working with a DataGridView in a child form, if I cancel the childform with the follwing code:&lt;br&gt;&lt;br&gt;[codesnippet]DialogResult = Windows.Forms.DialogResult.Cancel[/codesnippet]&lt;br&gt;&lt;br&gt;Then I get the following exception:&lt;br&gt;&lt;br&gt;[codesnippet]&lt;br&gt;KeyNotFoundException&lt;br&gt;  The given key was not present in the dictionary.&lt;br&gt;&lt;br&gt;Source     : mscorlib&lt;br&gt;&lt;br&gt;Stack Trace: &lt;br&gt;   at System.ThrowHelper.ThrowKeyNotFoundException()&lt;br&gt;   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)&lt;br&gt;   at MicroFour.StrataFrame.Business.BusinessLayer.get__CurrentDataTable(Boolean IsSharedTable)&lt;br&gt;   at MicroFour.StrataFrame.Business.BusinessBindingSource.RemoveBOHandlers()&lt;br&gt;   at MicroFour.StrataFrame.Business.BusinessBindingSource.Dispose(Boolean disposing)&lt;br&gt;   at System.ComponentModel.Component.Dispose()&lt;br&gt;   at System.ComponentModel.Container.Dispose(Boolean disposing)&lt;br&gt;   at System.ComponentModel.Container.Dispose()&lt;br&gt;   at CardTrackingSystem.frmActivateCardsItems.Dispose(Boolean disposing) in E:\Visual Studio 2008 Projects\StrataFrame\Card Tracking System Projects\CardTrackingSystem.NET\CTS Solution\Card Tracking System\Dialogs\Transaction Forms\Activate Cards\frmActivateCardsItems.Designer.vb:line 10&lt;br&gt;   at System.Windows.Forms.Form.Close()&lt;br&gt;   at MicroFour.StrataFrame.UI.Windows.Forms.ChildFormDialog.ShowDialog(Object[] Arguments)&lt;br&gt;   at MicroFour.StrataFrame.UI.Windows.Forms.ChildFormDialog.ShowDialog()&lt;br&gt;   at CardTrackingSystem.frmActivateCards.cmdAddCards_Click(Object sender, EventArgs e) in E:\Visual Studio 2008 Projects\StrataFrame\Card Tracking System Projects\CardTrackingSystem.NET\CTS Solution\Card Tracking System\Dialogs\Transaction Forms\Activate Cards\frmActivateCards.vb:line 800&lt;br&gt;   at System.EventHandler.Invoke(Object sender, EventArgs e)&lt;br&gt;   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)&lt;br&gt;   at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)&lt;br&gt;   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)&lt;br&gt;   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)&lt;br&gt;   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)&lt;br&gt;   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)&lt;br&gt;   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)&lt;br&gt;   at System.Windows.Forms.Control.WmMouseUp(Message&amp; m, MouseButtons button, Int32 clicks)&lt;br&gt;   at System.Windows.Forms.Control.WndProc(Message&amp; m)&lt;br&gt;   at System.Windows.Forms.ScrollableControl.WndProc(Message&amp; m)&lt;br&gt;   at System.Windows.Forms.ToolStrip.WndProc(Message&amp; m)&lt;br&gt;   at System.Windows.Forms.Control.ControlNative&amp;#119;indow.OnMessage(Message&amp; m)&lt;br&gt;   at System.Windows.Forms.Control.ControlNative&amp;#119;indow.WndProc(Message&amp; m)&lt;br&gt;   at System.Windows.Forms.Native&amp;#119;indow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)&lt;br&gt;&lt;br&gt;[/codesnippet]&lt;br&gt;&lt;br&gt;The DataGridView is being populated with a BBS and the error only happens if the grid has some data.  I don't know what "Key" it may be looking for?  Also I would like to note that the BO assigned to the BBS has come Custom Field Properties which are not used in the DataGridView.</description><pubDate>Fri, 29 May 2009 20:15:13 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>Error during deleting BO record in a Form</title><link>http://forum.strataframe.net/Topic26135-6-1.aspx</link><description>Hi,&lt;/P&gt;&lt;P&gt;I have a form with a ParentBO and 3 children (I´m using DevExpress grid with BBS).&lt;BR&gt;When I try to delete the record by Form, appears this message below.&lt;/P&gt;&lt;P&gt;I´ve been looking for some configurations on my BOParent or Form and .. Nothing....:crying:&lt;BR&gt;This occurs when BoChildren are filled or not.&lt;BR&gt;&lt;BR&gt;Some help guys?&lt;/P&gt;&lt;P&gt;--------------------------------------------------------------------------------------------------------&lt;BR&gt;NullReferenceException&lt;BR&gt;  Object reference not set to an instance of an object.&lt;/P&gt;&lt;P&gt;Source     : MicroFour StrataFrame Business&lt;/P&gt;&lt;P&gt;Stack Trace: &lt;BR&gt;   at MicroFour.StrataFrame.Business.BusinessLayer.DeleteChildRecords(Boolean OnlyMarkAsDeleted)&lt;BR&gt;   at MicroFour.StrataFrame.Business.BusinessLayer.DeleteCurrentRow(Boolean CheckSecurity, Boolean OnlyMarkAsDeleted)&lt;BR&gt;   at MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.Delete(Boolean OnlyMarkAsDeleted, Boolean CheckSecurity)&lt;BR&gt;   at MicroFour.StrataFrame.UI.Windows.Forms.MaintenanceFormToolStrip.cmdDelete_Click(Object sender, EventArgs e)&lt;BR&gt;   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)&lt;BR&gt;   at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)&lt;BR&gt;   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)&lt;BR&gt;   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)&lt;BR&gt;   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)&lt;BR&gt;   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)&lt;BR&gt;   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)&lt;BR&gt;   at System.Windows.Forms.Control.WmMouseUp(Message&amp;amp; m, MouseButtons button, Int32 clicks)&lt;BR&gt;   at System.Windows.Forms.Control.WndProc(Message&amp;amp; m)&lt;BR&gt;   at System.Windows.Forms.ScrollableControl.WndProc(Message&amp;amp; m)&lt;BR&gt;   at System.Windows.Forms.ToolStrip.WndProc(Message&amp;amp; m)&lt;BR&gt;   at System.Windows.Forms.Control.ControlNative&amp;#119;indow.OnMessage(Message&amp;amp; m)&lt;BR&gt;   at System.Windows.Forms.Control.ControlNative&amp;#119;indow.WndProc(Message&amp;amp; m)&lt;BR&gt;   at System.Windows.Forms.Native&amp;#119;indow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)&lt;BR&gt;--------------------------------------------------------------------------------------------------------&lt;BR&gt;</description><pubDate>Sat, 20 Feb 2010 09:05:45 GMT</pubDate><dc:creator>Luiz Lima</dc:creator></item><item><title>multi-table BO question</title><link>http://forum.strataframe.net/Topic26226-6-1.aspx</link><description>Since I need to have a view to map my business objects to when pulling data from many tables, what (if any) is the advantage of populating via a SPROC versus using the view I already have defined for mapping?&lt;P&gt;I like (in theory) not having to keep the SPROC and views in sync. In admittedly limited testing performance seems equal.&lt;/P&gt;&lt;P&gt;Thanks in advance for your opinions, as always.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Method A (mapped to view, populate via SPROC, passing in parameters):&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;[quote]&lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;Public&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt; FillBySprocGetRosterValues(&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt; p_rosterPK &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;As&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;)&lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt; cmd &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;As&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;New&lt;/FONT&gt;&lt;/FONT&gt; SqlCommand()&lt;/P&gt;&lt;P&gt;cmd.CommandType = CommandType.StoredProcedure&lt;/P&gt;&lt;P&gt;cmd.CommandText = &lt;FONT color=#a31515&gt;&lt;FONT color=#a31515&gt;"dbo.sdsi_GetRosterValues"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;P&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;'-- Create the parms&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;P&gt;cmd.Parameters.AddWithValue(&lt;FONT color=#a31515&gt;&lt;FONT color=#a31515&gt;"@rosterPK"&lt;/FONT&gt;&lt;/FONT&gt;, p_rosterPK).SqlDbType = SqlDbType.Int&lt;/P&gt;&lt;P&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;'-- Return the results&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;Me&lt;/FONT&gt;&lt;/FONT&gt;.FillDataTable(cmd)&lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;End&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;Sub&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;[/quote]&lt;P&gt; &lt;STRONG&gt;&lt;FONT size=3&gt;Method 2 (Map to view, populate BO using the view):&lt;/FONT&gt;&lt;/STRONG&gt;&lt;P&gt;[quote]&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;Public&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt; FillBySessionPK(&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt; p_sessionPK &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;As&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;)&lt;/P&gt;&lt;P&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;'-- Establish locals&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt; loCommand &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;As&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;New&lt;/FONT&gt;&lt;/FONT&gt; SqlCommand()&lt;/P&gt;&lt;P&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;'-- Build the query&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;P&gt;loCommand.CommandText = &lt;FONT color=#a31515&gt;&lt;FONT color=#a31515&gt;"SELECT * FROM vwAllAcademiesBySession WHERE sxa_session_fk = @param1"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;P&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;'-- Add the parameter&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;P&gt;loCommand.Parameters.Add(&lt;FONT color=#a31515&gt;&lt;FONT color=#a31515&gt;"@param1"&lt;/FONT&gt;&lt;/FONT&gt;, SqlDbType.Int)&lt;/P&gt;&lt;P&gt;loCommand.Parameters(&lt;FONT color=#a31515&gt;&lt;FONT color=#a31515&gt;"@param1"&lt;/FONT&gt;&lt;/FONT&gt;).Value = p_sessionPK&lt;/P&gt;&lt;P&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#008000&gt;'-- Execute the command to fill the business object&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;Me&lt;/FONT&gt;&lt;/FONT&gt;.FillDataTable(loCommand)&lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;End&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;Sub&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;[/quote]</description><pubDate>Thu, 25 Feb 2010 14:26:34 GMT</pubDate><dc:creator>Keith Chisarik</dc:creator></item><item><title>TransactionKey property</title><link>http://forum.strataframe.net/Topic15532-6-1.aspx</link><description>I think this key is used to get DbTransaction object from  Transaction Collection.&lt;/P&gt;&lt;FONT color=#2b91af size=2&gt;&lt;P&gt;(DataBasics&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;.DataSources[""].Transactions).&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;Normally, When BusinessLayer.TransactionBegin is called a DbTransaction Object is added to the collection with a default key value. This default transaction will be used.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;When do I need simultaneous transactions ? I mean, When will be more than one transactions in that collection. So I will follow a key.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;P&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;/FONT&gt;</description><pubDate>Fri, 11 Apr 2008 08:39:28 GMT</pubDate><dc:creator>Ertan Deniz</dc:creator></item><item><title>Question on Tutorial</title><link>http://forum.strataframe.net/Topic26197-6-1.aspx</link><description>Working through the tutorial and got the CustomerMaintenance form up and running.  However when I click on "New" an InvalidCastException is thrown.&lt;br&gt;&lt;br&gt;Exception message states "Unable to cast object of type 'System.DBNull' to type 'System.String'."  Offending line of code is in the 'get' accessor for the CustomerID field and reads - "[font=Courier New]return (System.String)this.CurrentRow["CustomerID"];[/font]".  &lt;br&gt;&lt;br&gt;I know I can put in some code in the get accessor to check for DbNull but was just wondering if there is a property or something that can be set to true so that the generated code will automatically account for null scenarios.</description><pubDate>Wed, 24 Feb 2010 10:03:29 GMT</pubDate><dc:creator>Bo Harris</dc:creator></item><item><title>BO's vs Table Adaptors for reporting (DevExpress XtraReports)</title><link>http://forum.strataframe.net/Topic15189-6-1.aspx</link><description>Hi,&lt;/P&gt;&lt;P&gt;A bit of general input please.&lt;/P&gt;&lt;P&gt;I’m currently investigating how we will implement reporting using DevExpress XtraReports. We are going down the XtraReports path because we use DevExpress controls and, hoperfully, just keeping our development toolset to StrataFrame and DevExpress will make life easier and XtraReports looks like giving us all we want in a report writer.&lt;/P&gt;&lt;P&gt;I’ve been back through the forum looking at all the ‘reporting’ posts and it seems as though using SF BO’s for reporting has been successfully implemented around the place although, I must admit, I haven’t been able to manage that trick yet. However, what I have seen so far concerns me in that getting data into a report appears to involve first getting a report’s data into the BO’s used in a report then doing a table copy to get the data from the BO’s into the report itself. I see this as being somewhat inefficient and, as our system it used by quite a few reporting users during production (average inserts of 40 or so new transactions every minute into an 11 million row transaction file) then efficiency is always front of mind. The application uses thin clients under terminal services so, in our case, there’s no advantage in storing copies of data in BO’s that are local to the user’s PC.&lt;/P&gt;&lt;P&gt;It seems to me that using Table Adaptors to execute stored procedures to get the data into our reports is the best way to go but I wonder if anyone would care to comment on the benefits of using SF BO’s over Table Adaptors and/or the disadvantages of Table Adaptors. Indeed, maybe my understading that report data must first populate BO's then be copied as a table into the report is off target.&lt;/P&gt;&lt;P&gt;Cheers, Peter&lt;BR&gt;</description><pubDate>Thu, 27 Mar 2008 00:00:14 GMT</pubDate><dc:creator>Peter Jones</dc:creator></item><item><title>BO and BBS with Sharpshooter</title><link>http://forum.strataframe.net/Topic22341-6-1.aspx</link><description>Trying to confirm something about Sharpshooter filter parameters within Sharpshooter itself. &lt;/P&gt;&lt;P&gt;I have a VIEW that defines what tables need to be related and how. Created a SF BO to be able to map the VIEW to a BO. Then created a Custom BBS on the BO.&lt;/P&gt;&lt;P&gt;Naturally until a call is made to fill the BO no data is filled. &lt;/P&gt;&lt;P&gt;If you reference the BBS in the Sharpshooter report as a Datasource, then put filter expression on the report as parameters, will Sharpshooter return:&lt;/P&gt;&lt;P&gt;A. All data to fill the BO and then filter based on the Sharpshooter filter expressions? , or&lt;/P&gt;&lt;P&gt;B. Does Sharpshooter generate a SQL SELECT with the parameters already built into the SELECT statement thereby returning only the ropws needed?&lt;/P&gt;&lt;P&gt;From what I can see, I believe "A." is what Sharpshooter does.</description><pubDate>Thu, 12 Mar 2009 10:50:21 GMT</pubDate><dc:creator>Ross L. Rooker, Sr.</dc:creator></item><item><title>BBS does not show Custom Field (CFP)</title><link>http://forum.strataframe.net/Topic26084-6-1.aspx</link><description>Hi,&lt;br&gt;&lt;br&gt;I created some CFPs but they don´t appears on my selection field when I use a BBS with DevExpress Grid.&lt;br&gt;&lt;br&gt;Anybody can help me?&lt;br&gt;&lt;br&gt;Tks&lt;br&gt;</description><pubDate>Thu, 18 Feb 2010 05:04:32 GMT</pubDate><dc:creator>Luiz Lima</dc:creator></item><item><title>How configure businessobject to use view?</title><link>http://forum.strataframe.net/Topic25533-6-1.aspx</link><description>Hi,&lt;br&gt;I have some view and want to use business object to provide access to this view (bind to grid, use as datasource and so on)&lt;br&gt;So,&lt;br&gt;I create view using DDT, then deploy it&lt;br&gt;Then I create new business object, start Business object mapper&lt;br&gt;Select business object&lt;br&gt;Click "Configure"&lt;br&gt;Then using "DDT" option in optiongroup - click "Select" - and there only tables are listed.&lt;br&gt;&lt;br&gt;The question is:&lt;br&gt;How can I create business object based on view?&lt;br&gt;&lt;br&gt;Thanks&lt;br&gt;Denis</description><pubDate>Wed, 13 Jan 2010 09:55:05 GMT</pubDate><dc:creator>dgsoft</dc:creator></item><item><title>Cannot insert explicit value for identity column</title><link>http://forum.strataframe.net/Topic26039-6-1.aspx</link><description>Hi,&lt;br&gt;&lt;br&gt;I am getting the following error while trying to insert a record using businessObject1.save():&lt;br&gt;&lt;br&gt;Cannot insert explicit value for identity column in table 'MyTable' when IDENTITY_INSERT is set to OFF.&lt;br&gt;&lt;br&gt;I tracked the problem and found out that the SQL generated to insert the record has the auto-increment primary id field set to NULL.&lt;br&gt;&lt;br&gt;Things I tried:&lt;br&gt;&lt;br&gt;1. I setted the ID field to readonly from the Business Object Mapper -&gt; same error&lt;br&gt;2. I captured the exact SQL, removed the ID field and run it on SQL Server Management Studio -&gt; worked at that run&lt;br&gt;3. I added the ID field to FieldsToExcludeFromInsert property of the business object -&gt; the application gave the error: Cannot create INSERT command because the updating DataTable does not contain columns for all PrimaryKeyFields.&lt;br&gt;&lt;br&gt;I compared the business object I created for that application with a business object from the samples - which also has a auto-increment primary key field (cust_pk), and it seems to have the same structure. I didn't see any difference that could be the reason of the problem I am having.&lt;br&gt;&lt;br&gt;I am still trying to find the problem, but any help would be very much appreciated.&lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;&lt;br&gt;Buluc</description><pubDate>Mon, 15 Feb 2010 08:47:21 GMT</pubDate><dc:creator>Buluc Celik</dc:creator></item><item><title>Auditor Class</title><link>http://forum.strataframe.net/Topic25242-6-1.aspx</link><description>Hi,&lt;/P&gt;&lt;P&gt;Is anyone using the Auditor class?&lt;/P&gt;&lt;P&gt;I have added the following code to the BeforeSave and AfterSave business object events but nothing happens:-&lt;/P&gt;&lt;P&gt;Auditor.InsertAuditRecords(this);&lt;/P&gt;&lt;P&gt;I have enabled auditing for both the business object and the current user but the following returns false:-&lt;/P&gt;&lt;P&gt;Auditor.ShouldAuditDataChanges(this);&lt;/P&gt;&lt;P&gt;I think I am having another dumb moment but I can't see what is wrong.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Aaron</description><pubDate>Wed, 18 Nov 2009 15:33:55 GMT</pubDate><dc:creator>Aaron Young</dc:creator></item><item><title>ListView, BO, and passing a Dictionary to the BO's Fill()</title><link>http://forum.strataframe.net/Topic25920-6-1.aspx</link><description>H- &lt;br&gt;&lt;br&gt;Having an issue filling a listView based on a BO filled using a stored procedure. Will try to distill the scenario below, hopefully not omitting any key elements. &lt;br&gt;&lt;br&gt;[b]--- Intro --------------------------------[/b]&lt;br&gt;The BO has a fill method with the following signature. &lt;br&gt;&lt;br&gt;    public void FillAfterRefresh(Dictionary&lt;String, Object&gt; tdictParameters)&lt;br&gt;&lt;br&gt;The dictionary passed in includes values used as parameters in the call to the stored procedure. &lt;br&gt;&lt;br&gt;The form has a listVview on it, that I want to populate using the result set returned by the stored procedure. It is set to manually populate, and I've specified the appropriate BO class and the above fill method. &lt;br&gt;&lt;br&gt;For testing/debugging purposes I've thrown a few controls on the form as well and bound them to BO fields. &lt;br&gt;&lt;br&gt;[b]--- Observations/Problems ---------------------------------[/b]&lt;br&gt;1.) If I drop an instance of the BO onto the form, and call the above Fill method, passing a reference to a dictionary in as the lone argument, the fill works great (confirmed via the debugger and by being able to view the results in the test controls on the form). &lt;br&gt;&lt;br&gt;2.) When I attempt to set the List View Population Settings, I see my fill method, but the parameter shows as (Dictionary`2). Not sure what's up with this? (But, willing to run it anyway since it compiles.)  Note: See attached PNG. &lt;br&gt;&lt;br&gt;3.) If I try to call the listview's requery, passing in the dictionary (either in the requery call or in the ListPopulating event using e.Parameters[0].Value = this.oDictUserInfo;) I get an immediate error at runtime: &lt;br&gt;&lt;br&gt;Dynamically populating the ListView failed.  Could not create and fill the business object of type 'IndexReviewSystem.Business_Objects.Reporting_Objects.boIRSPredictiveCompositionNullProblems'&lt;br&gt;&lt;br&gt;Inner Exception Message: "Dynamically populating the ListView failed.  Type 'System.Collections.Generic.Dictionary`2[[System.String' could not be found."&lt;br&gt;&lt;br&gt;Can someone help me make sense of this? &lt;br&gt;&lt;br&gt;I feel I have a workaround as I can put a BO on the form, fill it, then copy the filled datatable to the listview's internal datatable. I feel, however, I shouldn't need to do that… I'd really like to understand what's going on. &lt;br&gt;&lt;br&gt;TIA&lt;br&gt;</description><pubDate>Wed, 10 Feb 2010 13:24:09 GMT</pubDate><dc:creator>Alex Luyando</dc:creator></item><item><title>Regarding Strata Frame and CoreLab MySQL</title><link>http://forum.strataframe.net/Topic14925-6-1.aspx</link><description>I was wondering if anybody has used CoreLabs MySql control with StrataFrame. &lt;/P&gt;&lt;P&gt;Mike</description><pubDate>Fri, 14 Mar 2008 18:06:08 GMT</pubDate><dc:creator>Mike Rogers</dc:creator></item><item><title>Best practice question on Date columns</title><link>http://forum.strataframe.net/Topic25847-6-1.aspx</link><description>If we have a BO that has a datetime column that we may at times want to use the date picker against in Strataframe what is the best method of setting the default in the BO Mapper and what is the difference between each method? IE... advantages, etc: FYI I mainly have used the first method which seems to work for SQL and Oracle. &lt;/P&gt;&lt;P&gt;First Setting: NULL VALUE OPTION = Return Alternate on Null / Set Null on Alternate (Value Type) and the NULL REPLACEMENT VALUE = new DateTime(1800, 1, 1)&lt;/P&gt;&lt;P&gt;Second setting:  NULL VALUE OPTION = Return Alernate on Null and the NULL REPLACEMENT VALUE = Convert.ToDateTime("1800-01-01 00:00:00.000")</description><pubDate>Mon, 08 Feb 2010 21:13:18 GMT</pubDate><dc:creator>Ross L. Rooker, Sr.</dc:creator></item><item><title>ExecuteNonQuery issue with creating Temp Table</title><link>http://forum.strataframe.net/Topic25843-6-1.aspx</link><description>I keep getting the following error whenever i try to access a temp table that was created using the ExecuteNonQuery method:&lt;br&gt;&lt;br&gt;Invalid object name '#tList'.&lt;br&gt;&lt;br&gt;I have the code within a data retrieval method of a BO.&lt;br&gt;&lt;br&gt;&lt;br&gt;[codesnippet]&lt;br&gt;            this.FillDataTable(cmd);&lt;br&gt;&lt;br&gt;            if (this.MoveFirst())&lt;br&gt;            {&lt;br&gt;                this.ExecuteNonQuery("CREATE TABLE #tList (poitemsextended_pk int, po_no varchar(10), part_no varchar(30))");&lt;br&gt;&lt;br&gt;                SqlCommand tcmd = new SqlCommand();&lt;br&gt;                do&lt;br&gt;                {&lt;br&gt;&lt;br&gt;                    tcmd.CommandText = "INSERT INTO #tList (poitemsextened_pk, po_no, part_no) VALUES (@poitemsextended_pk, @po_no, @part_no)";&lt;br&gt;&lt;br&gt;                    int poiepk = this.CurrentRow["PoIEpk"] == DBNull.Value ? 0 : (int)this.CurrentRow["PoIEpk"];&lt;br&gt;&lt;br&gt;                    tcmd.Parameters.AddWithValue("@poitemsextended_pk", poiepk).SqlDbType = SqlDbType.Int;&lt;br&gt;                    tcmd.Parameters.AddWithValue("@po_no", this.po_no).SqlDbType = SqlDbType.VarChar;&lt;br&gt;                    tcmd.Parameters.AddWithValue("@part_no", this.part_no).SqlDbType = SqlDbType.VarChar;&lt;br&gt;&lt;br&gt;                    this.ExecuteNonQuery(tcmd);&lt;br&gt;&lt;br&gt;                } while (this.MoveNext());&lt;br&gt;&lt;br&gt;[/codesnippet]&lt;br&gt;&lt;br&gt;The error is returned on this.ExecuteNonQuery(tcmd) at the end.&lt;br&gt;&lt;br&gt;I've tried passing the insert as a string instead of an SqlCommad but i get the same error. I've also tried creating a global table prefixing tList with ## with same results.&lt;br&gt;&lt;br&gt;Any help would be greatly appreciated.</description><pubDate>Mon, 08 Feb 2010 18:23:17 GMT</pubDate><dc:creator>Victor Sousa</dc:creator></item><item><title>BOM-generated bug with FieldChangingEvents and Nullable Fields</title><link>http://forum.strataframe.net/Topic23093-6-1.aspx</link><description>If a field has a Null Type of "Return and Set Alternate on Null..." and the Property Changing Events (either single or multiple) are generated, then the following code is generated.&lt;br&gt;&lt;br&gt;[codesnippet]public System.String FIELD1&lt;br&gt;        {&lt;br&gt;            get&lt;br&gt;            {&lt;br&gt;                object loValue;&lt;br&gt;                loValue = this.CurrentRow["FIELD1"];&lt;br&gt;                if (loValue == DBNull.Value)&lt;br&gt;                {&lt;br&gt;                    return "";&lt;br&gt;                }&lt;br&gt;                else&lt;br&gt;                {&lt;br&gt;                    return (System.String)loValue;&lt;br&gt;                }&lt;br&gt;            }&lt;br&gt;            set&lt;br&gt;            {&lt;br&gt;                MyBOFieldChangingEventArgs e = new MyBOFieldChangingEventArgs(MyBOFieldNames.FIELD1, value);&lt;br&gt;                this.OnFieldPropertyChanging(this, e);&lt;br&gt;                if (value != "")     &lt;=== :w00t:*** Note: e is not used!!!! ***&lt;br&gt;                {&lt;br&gt;                    this.CurrentRow["FIELD1"] = value;&lt;br&gt;                }&lt;br&gt;                else&lt;br&gt;                {&lt;br&gt;                    this.CurrentRow["FIELD1"] = DBNull.Value;&lt;br&gt;                }&lt;br&gt;            }&lt;br&gt;        }&lt;br&gt;[/codesnippet]&lt;br&gt;&lt;br&gt;The e.FieldValue is not used after returning from the event!!!!   The e.FieldValue should be cast/set to value (as it is if the field is not nullable.)</description><pubDate>Wed, 13 May 2009 13:42:46 GMT</pubDate><dc:creator>Kirk M Sherhart</dc:creator></item><item><title>Detecting DB Connection State</title><link>http://forum.strataframe.net/Topic25728-6-1.aspx</link><description>Good morning,&lt;br&gt;&lt;br&gt;I am revisiting a topic that may have been touched on before (I did search for it, but could not find any direct forum entries).  I apologize if I am re-walking on some old ground.&lt;br&gt;&lt;br&gt;I'd like to have a mechanism to alert the user that a database connection has been lost or regained.  Is it possible to get this information from the DataLayer?  Or, do I need to create my own test (perhaps in its own thread?) and bubble up the response to the currently running application thread?  Ideally, I prefer a graceful message to the end-user that the connection to the database is down and all data access functionality has been temporarily stopped.  After the connection is reestablished, the system would generate a message to the end-user that the connection is back online and work can continue normally.  For a similar functionality, consider the message Outlook provides when the Exchange server cannot be communicated with.&lt;br&gt;&lt;br&gt;Thanks!&lt;br&gt;Bill</description><pubDate>Tue, 02 Feb 2010 10:25:39 GMT</pubDate><dc:creator>Bill Cunnien</dc:creator></item><item><title>Truncating string values on Save</title><link>http://forum.strataframe.net/Topic25599-6-1.aspx</link><description>Hi,&lt;br&gt;&lt;br&gt;We had a curious issue today. A form exceptioned because column length value (by mistake) in the database was too short - just 20 characters when it should have been 100.&lt;br&gt;&lt;br&gt;The database was corrected but in testing I noted that when I entered 40 characters what is saved to the database is 22 characters. If enter 40 characters in EM then no problems so it is something in the form. So, I assume the truncation must be happening in the BO and what I didn't do is remap and compile the BO after I changed the column length.&lt;br&gt;&lt;br&gt;So, a few questions:&lt;br&gt;&lt;br&gt;1) Does SF trim form data to the maximum a column can accept during the Save operation.&lt;br&gt;&lt;br&gt;2) If 1 is true then after changing column lengths does the associated BO need to be recompiled.&lt;br&gt;&lt;br&gt;3) If 2) is true then it would appear there may be a bug in the SF code in that a nvarChar(20) column is being saved with 22 characters not the 20 as was originally mapped.&lt;br&gt;&lt;br&gt;BTW we use DevExpress but I can't see how that would effect things.&lt;br&gt;&lt;br&gt;Cheers, Peter</description><pubDate>Fri, 22 Jan 2010 00:45:33 GMT</pubDate><dc:creator>Peter Jones</dc:creator></item><item><title>How to properly dispose a BO?</title><link>http://forum.strataframe.net/Topic24782-6-1.aspx</link><description>I have a process that will load a couple of million records in BO to do a duplicate record search.  My process will import thousands (360K+) of records and then I need to make sure those records does not exist in the database, so instead of querying the data 360k+, I load a BO with all possible duplicate records to check against and this is the million records BO.&lt;br&gt;&lt;br&gt;Now the problem is that even when I do a BO.Clear to remove those records the application keeps using a lot of memory (over 1gb) and that memory is not released until the whole application is closed, so when the import process starts again, it will blow up with a not enough memory to complete the process.&lt;br&gt;&lt;br&gt;So what should I do in order to make sure that the memory used once the million record BO is filled is released when using BO.Clear?&lt;br&gt;&lt;br&gt;Also I am open to suggestions to change my approach if I need to.&lt;br&gt;&lt;br&gt;Thanks!</description><pubDate>Wed, 30 Sep 2009 10:47:09 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>UpdateUsingStoredProcedure on a subclassed BO</title><link>http://forum.strataframe.net/Topic25627-6-1.aspx</link><description>Hi,&lt;P&gt;In my project, all BO come from a BO library, in which they are all set with UpdateUsingStoredProcedure as True.&lt;/P&gt;&lt;P&gt;When I set UpdateUsingStoredProcedure as False on a BO on a form, this setting seems to be overridden by the setting of the BO in the BO library: saving by formSave raises an error (unable to find the update SP on the database).&lt;/P&gt;&lt;P&gt;I need to dynamically set it to False in the overriding function Save, before calling MyBase.Save&lt;/P&gt;&lt;P&gt;Is it anything I don't understand on subclassing in .Net?</description><pubDate>Wed, 27 Jan 2010 07:01:21 GMT</pubDate><dc:creator>Michel Levy</dc:creator></item><item><title>About GridControl (DevExpress), please help me</title><link>http://forum.strataframe.net/Topic18807-6-1.aspx</link><description>[code]&lt;br&gt;    '&lt;br&gt;    'get value of current row &lt;br&gt;    '&lt;br&gt;    Private Sub loadQByID_Grid()&lt;br&gt;        Dim ds As New DataSet()&lt;br&gt;        Dim dr As DataGridViewRow = gv.CurrentRow&lt;br&gt;        Dim str As Integer = Convert.ToInt16(dr.Cells(0).Value.ToString())&lt;br&gt;        Try&lt;br&gt;            ds = getQuestionByID(str)&lt;br&gt;            txtContent.Text = ds.Tables(0).Rows(0).Item(1)&lt;br&gt;        Catch ex As Exception&lt;br&gt;            Dim strError As String = "Error : " + ex.Message()&lt;br&gt;        End Try&lt;br&gt;    End Sub&lt;br&gt;[/code]&lt;br&gt;&lt;br&gt;This above code, I use DataGridView. &lt;br&gt;I want to use GridControl (DevExpress).&lt;br&gt;But when I used it, I don't see any object [b]DataGridViewRow[/b] and method [b]CurrentRow[/b]&lt;br&gt;How do I use GridControl (DevExpress) to get value of current row.&lt;br&gt;Please help me&lt;br&gt;Regards&lt;br&gt;PS: you can use C# to solve&lt;br&gt;</description><pubDate>Wed, 27 Aug 2008 12:43:36 GMT</pubDate><dc:creator>Robinson Robinsonit Robinson_niit</dc:creator></item><item><title>My BO don't move when I use the BrowseDialog and OLEDB VFP Table</title><link>http://forum.strataframe.net/Topic19855-6-1.aspx</link><description>Hi&lt;br&gt;&lt;br&gt;When the Browse Dialog is working, I can search, sort results... Everything is Ok, but When I use SF Browse Info Panel or try to get the result pointer from the search... The BO is steel in the first record.&lt;br&gt;&lt;br&gt;Thanks SF&lt;br&gt;</description><pubDate>Thu, 02 Oct 2008 13:57:33 GMT</pubDate><dc:creator>Elio Reyes</dc:creator></item><item><title>Transactional Replication and NextID Tables</title><link>http://forum.strataframe.net/Topic25547-6-1.aspx</link><description>We are reconsidering placing a second SQL Server in our remote office.  In order to have all data available we would like to implement transactional replication.  The scenario will allow us to have read/write options at both offices.  I will adjust the SF application to recognize which server to use based on the physical location of the user.  That should not be a problem.&lt;br&gt;&lt;br&gt;Now, we also have a nice little setup for incrementing a number of different record IDs (order ID, packing list number, credit memo ID, etc.).  I created a NextID table that allows us to have some nice control over these numbers used to track our various records.  It works great.  &lt;br&gt;&lt;br&gt;Enter transactional replication.&lt;br&gt;&lt;br&gt;What will happen to our nice NextID setup?  In what ways do I need to change our approach in order to have the same basic functionality.  I fear that a person in the remote location will create a new record and be handed an ID that is the same as the ID just handed out to the user in the main office.  Impending crash detected.&lt;br&gt;&lt;br&gt;Thanks for your input!!&lt;br&gt;Bill</description><pubDate>Thu, 14 Jan 2010 08:45:12 GMT</pubDate><dc:creator>Bill Cunnien</dc:creator></item><item><title>How to SUM child BO field into parent</title><link>http://forum.strataframe.net/Topic25493-6-1.aspx</link><description>Hi,&lt;/P&gt;&lt;P&gt;I´d like to sum a field value from a Child BO into its parent.&lt;BR&gt;Is there a method to do that automatically?&lt;BR&gt;&lt;/P&gt;&lt;P&gt;Example:&lt;/P&gt;&lt;P&gt;BoOrders&lt;BR&gt;field: orderTotalProduct&lt;/P&gt;&lt;P&gt;BoOrdersItens&lt;BR&gt;field: orderItemTotalProduct&lt;/P&gt;&lt;P&gt;While the user input orderItemTotalProduct, the field orderTotalProduct would receive the sum from child (in the EditState set as Adding or Editing).&lt;/P&gt;&lt;P&gt;Tks ;)</description><pubDate>Thu, 07 Jan 2010 11:56:10 GMT</pubDate><dc:creator>Luiz Lima</dc:creator></item><item><title>CopyDataFrom does not work</title><link>http://forum.strataframe.net/Topic25505-6-1.aspx</link><description>Hi,&lt;/P&gt;&lt;P&gt;I have a problem with CopyDataFrom. I have some DataSet and DataTable filled with data. Then I want to export this data through BusinessObject to SQL Server. I have correct data in the BO.CurrentDataTable, but after Save() I have no data on SQLServer. Save operation returns success. &lt;BR&gt;I have a next code&lt;BR&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;BR&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; loBBDS &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; BestbuyImportDataSet = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;CType&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(toDS, BestbuyImportDataSet)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; loBBDS.vbestbuy.Count &amp;gt; 0 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; loVBestbuyBO &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; MKS.GoliathNet.BusinessObjects.ErpBestbuy.vbestbuyBO = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; vbestbuyBO&lt;BR&gt;loVBestbuyBO.mmks_deletemanufacturerartikels(_pmks_businessObject.driver_manufacturer_pk_id)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;loVBestbuyBO.CopyDataFrom(loBBDS.vbestbuy, MicroFour.StrataFrame.Business.BusinessCloneDataType.ClearAndFillFromCompleteTable)&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; loVBestbuyBO.IsDirty &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;MessageBox.Show(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"IsDirty"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; loVBestbuyBO.Save() = MicroFour.StrataFrame.Data.SaveUndoResult.Success &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;MessageBox.Show(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"SaveSuccess"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;So step by step.&lt;BR&gt;loBBDS.vbestbuy.count has 6000 records&lt;BR&gt;After CopyDataFrom - businessObject CurrentDataTable has also 6000 records&lt;BR&gt;IsDirty - FALSE!!!&lt;BR&gt;Save() is Success! And NO DATA ON SQL SERVER!&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff&gt;Any help!&lt;BR&gt;Thanks!&lt;FONT size=2&gt;&lt;FONT size=2&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;</description><pubDate>Fri, 08 Jan 2010 05:08:01 GMT</pubDate><dc:creator>Rainer Kempf, RK</dc:creator></item><item><title>Generic BO?</title><link>http://forum.strataframe.net/Topic25472-6-1.aspx</link><description>My application can read a user defined database whose structure is not known until runtime. A separate application allows the user to create the database and saves information in a known configuration database  which comprises the field names and the type of controls to be created on the WinForm top display the data. I'm not sure where to start to create a generic BO (if possible) that can perform the CRUD operations on the 'unknown ' database structure. Can anyone point me in the right direction,&lt;P&gt;Many thanks for your time</description><pubDate>Mon, 04 Jan 2010 05:16:28 GMT</pubDate><dc:creator>Ian Hammond</dc:creator></item><item><title>Custom field enum data type throwing cast error</title><link>http://forum.strataframe.net/Topic10897-6-1.aspx</link><description>I am receving an error retreving a value from a field that has been customized to map to an enum.  In the BOM I set the ACTIONTYPECODE field to use the &lt;FONT color=#008080&gt;InspectionType&lt;/FONT&gt;&lt;FONT size=2&gt; Field Data Type. No problems there.   I build partial and get the following code in my .Designer file:&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;[&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Browsable&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;false&lt;/FONT&gt;&lt;FONT size=2&gt;),&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;BusinessFieldDisplayInEditor&lt;/FONT&gt;&lt;FONT size=2&gt;(),&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Description&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"ACTIONTYPECODE"&lt;/FONT&gt;&lt;FONT size=2&gt;),&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;DesignerSerializationVisibility(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;DesignerSerializationVisibility&lt;/FONT&gt;&lt;FONT size=2&gt;.Hidden)]&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;InspectionType&lt;/FONT&gt;&lt;FONT size=2&gt; ACTIONTYPECODE&lt;BR&gt;{&lt;BR&gt;   &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;get&lt;BR&gt;   &lt;/FONT&gt;&lt;FONT size=2&gt;{&lt;BR&gt;      &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;InspectionType&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;this&lt;/FONT&gt;&lt;FONT size=2&gt;.CurrentRow[&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"ACTIONTYPECODE"&lt;/FONT&gt;&lt;FONT size=2&gt;];&lt;BR&gt;   }&lt;BR&gt;   &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;set&lt;BR&gt;   &lt;/FONT&gt;&lt;FONT size=2&gt;{&lt;BR&gt;      &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;this&lt;/FONT&gt;&lt;FONT size=2&gt;.CurrentRow[&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"ACTIONTYPECODE"&lt;/FONT&gt;&lt;FONT size=2&gt;] = &lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#1111ff&gt;value&lt;/FONT&gt;;&lt;BR&gt;   &lt;/FONT&gt;&lt;FONT size=2&gt;}&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size=2&gt;and here is the enum:&lt;FONT color=#0000ff size=2&gt;&lt;/P&gt;&lt;P&gt;public&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;enum&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;InspectionType&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;{&lt;BR&gt;   Foo= 0,&lt;BR&gt;   Bar= 1,&lt;BR&gt;   Zip= 2&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size=2&gt;Nothing too complex.  Stepping through the cose I can assign a value to ACTIONTYPECODE without issue.  But when I hit the 'Get' I end up with this error:&lt;BR&gt;&lt;FONT size=1&gt;&lt;BR&gt;Cannot unbox 'this.CurrentRow["ACTIONTYPECODE"]' as a 'InspectionType'&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Now this would make sense to me since the field seems to be stored as a string and last time I tried I had to do something like this: &lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;InspectionType&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Enum&lt;/FONT&gt;&lt;FONT size=2&gt;.Parse(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;typeof&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;InspectionType&lt;/FONT&gt;&lt;FONT size=2&gt;), "Foo"); &lt;/FONT&gt;to cast a string as an enum.  What am I screwing up? :ermm:&lt;FONT size=2&gt;&lt;FONT size=1&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;</description><pubDate>Thu, 16 Aug 2007 12:24:47 GMT</pubDate><dc:creator>Rob Toyias</dc:creator></item><item><title>BBS &amp; Report Sharphooter perfromance issue.</title><link>http://forum.strataframe.net/Topic25412-6-1.aspx</link><description>Attached is a sample program that creates two Report Sharpshooter reports; one using a SF BBS as the data source and one that uses a dataset. Aside from the data source both reports are identical. The sample program uses the SF Sample database as its data source. What I've found is that when a BBS is used as a data source, it takes RSS longer to render the report and the rendering time increases dramatically as the number of records increases. The SF sample DB only contins around 19K customer records but this is sufficient to demonstrate the difference. On my development system the BBS based report takes about 43 seconds to render while the dataset based report takes about 6 seconds. The tests were run outside of VS. Is this to be expected when using a BBS as a report data source or am I missing something that could improve performance? The sample was created using SF 1.7.0.2 and RSS 4.0.3.5.</description><pubDate>Tue, 15 Dec 2009 16:04:12 GMT</pubDate><dc:creator>Larry Caylor</dc:creator></item><item><title>Restoring SF Project onto another machine</title><link>http://forum.strataframe.net/Topic25442-6-1.aspx</link><description>This is a continuation on from another thread as I have not this resolved. On previous thread, I had copied from my local PC up to a server, and restored all datatabses, Source Projects and the SF database. Everything seemed to restore ok ecept the Business Object Mapper stuff. I manually reset up all the Business Objects to resolve the issue.&lt;/P&gt;&lt;P&gt;I now have copied down all the stuff from the Server to my local PC, and again just cannot get the Business Object Mapper stuff working on my local PC . Initially when it came down, even though all database tables were ok, and had new fields etc , the Buisness Object mapper looked as if it was hanging on to an older version (e.g. New fields I had added on are no longer in the Businee Object Mapper, and it is showing up fields that had been deleted while ago.)&lt;/P&gt;&lt;P&gt;To recap, &lt;/P&gt;&lt;P&gt;I backed up a)My Source  b)My App Database  c)Strataframe database&lt;/P&gt;&lt;P&gt;I then restored a) b) and c) onto my local PC&lt;/P&gt;&lt;P&gt;I must be missing something !!!!</description><pubDate>Tue, 22 Dec 2009 11:13:53 GMT</pubDate><dc:creator>Gerard O Carroll</dc:creator></item><item><title>Concurrency Using RowVersion Problem</title><link>http://forum.strataframe.net/Topic15079-6-1.aspx</link><description>Hi Guys,&lt;P&gt;As I have said before, I am a part time programmer and seem to be little rusty all of the time.  With that said, after following the help instructions, I am unable to get SF concurrency using RowVersioning to work.  User A and User B are editing the same record at the same time using the code below.  User A saves the record.  Then User B saves the record and the BO does not throw an exception.  What am I doing wrong? &lt;IMG title=Crazy src="http://forum.strataframe.net/Skins/Classic/Images/MessageIcons/Crazy.gif" align=absMiddle&gt; Thanks for the help!&lt;/P&gt;&lt;P&gt;I have the following properties set on the ContactsBO:&lt;/P&gt;&lt;P&gt;CollisionNoficationType = ThrowException&lt;/P&gt;&lt;P&gt;RowVersionOrTimestampColumn = ContactRowVersion (datatype int - allow nulls)&lt;/P&gt;&lt;P&gt;UpdateConcurrencyType = OptimisticRowVersion&lt;/P&gt;&lt;P&gt;Code Below..............................&lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;Using&lt;/FONT&gt;&lt;FONT size=2&gt; loBO &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; ContactsBO&lt;/P&gt;&lt;P&gt;loBO.FillByPrimaryKey(contactID)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;FONT size=2&gt; loBO.IsEmpty &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;  Return&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;False&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Else&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;  loBO.Edit()&lt;/P&gt;&lt;P&gt;  loBO.UserID = GlobalVariables.CurrentUserID&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;  loBO.Save()&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Return&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;True&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Using&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Catch&lt;/FONT&gt;&lt;FONT size=2&gt; ex &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; MicroFour.StrataFrame.Data.DataLayerException&lt;/P&gt;&lt;P&gt;MsgBox(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"DataLayerException ex = "&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; ex.Message)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Return&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;False&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Catch&lt;/FONT&gt;&lt;FONT size=2&gt; ex &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; MicroFour.StrataFrame.Data.DataLayerSavingException&lt;/P&gt;&lt;P&gt;MsgBox(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"DataLayerSavingExeption ex = "&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; ex.Message)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Return&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;False&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Catch&lt;/FONT&gt;&lt;FONT size=2&gt; ex &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; MicroFour.StrataFrame.Data.RowNotUpdatedException&lt;/P&gt;&lt;P&gt;MsgBox(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"RowNotUpdateExeption ex = "&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; ex.Message)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Return&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;False&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Catch&lt;/FONT&gt;&lt;FONT size=2&gt; ex &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; Exception&lt;/P&gt;&lt;P&gt;Ems.HandleException(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Me&lt;/FONT&gt;&lt;FONT size=2&gt;, ex)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Return&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;False&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Try&lt;/P&gt;&lt;/FONT&gt;</description><pubDate>Fri, 21 Mar 2008 09:46:47 GMT</pubDate><dc:creator>Jeff Pagley</dc:creator></item><item><title>BBS &amp; Role Based Security</title><link>http://forum.strataframe.net/Topic25403-6-1.aspx</link><description>I've been having performance issues with Report Sharpshooter when using a BBS as a datasource (see &lt;A href="http://forum.strataframe.net/Topic20268-14-1.aspx"&gt;http://forum.strataframe.net/Topic20268-14-1.aspx&lt;/A&gt;). I was putting together a small test app and couldn't reporduce the performance issue until I noticed that my test app was a standard SF application without security. When I put together a test using a SF app with security, the performance issue was back. It would appear that there is something going on when Role Based security is added that impacts the rendering time for Report Sharpshooter. Are there any BO properites that I should be setting in this situation?</description><pubDate>Mon, 14 Dec 2009 19:56:43 GMT</pubDate><dc:creator>Larry Caylor</dc:creator></item><item><title>Business Object from Joined Tables</title><link>http://forum.strataframe.net/Topic25388-6-1.aspx</link><description>I have many requirements to be able to show on a ListView/Combobox the results from multiple joined tables. (e.g.Show Transactions but join in the Stock Description from a joined file). I have gone through a lot of the threads here to get hints , and have it working fine on a Combobox , but would like to ensure there are no Gotchas for any of the other list types , or maybe there is a better way. &lt;P&gt;[codesnippet]1. Say my data is required from two Tables, Tran and Products, where Products gives the description&lt;BR&gt;2. I have set up a 'Dummy' business Object which will be used for ALL my Joined Tables (Query ? Can I do this with just one Dummy Business Object for ALL my lists)&lt;BR&gt;3. I have a Stored Proccdure which Joins the Tables Tran and Products&lt;BR&gt;4. I specify the Dummy Business Object as the BusinessObjectType  in the PopulationDataSourceSettings 9With a different Stored procedure depending on the  Tables)&lt;BR&gt;(When entering the Columns, I [u][b]type in the column names [/b][/u]as they will not be in the buisness Object when it is initially set up)&lt;BR&gt;5. My main concern is that I am using in effect  a Multi Table Business Object (whereas when Business Objects are being set up they are limited to One Table only) and wonder if this will cause any problems in SF[/codesnippet]&lt;P&gt; &lt;P&gt;Any comments would be helpful</description><pubDate>Fri, 11 Dec 2009 10:42:12 GMT</pubDate><dc:creator>Gerard O Carroll</dc:creator></item><item><title>Setting AutoAdjustmaxLength in base class</title><link>http://forum.strataframe.net/Topic25336-6-1.aspx</link><description>I want to set the AutoAdjustMaxLength to true in my Base Class Textbox. Where is the best place to put this and also to ensure it does not fire for Text Boxes that are not bound to a Business Object</description><pubDate>Mon, 07 Dec 2009 04:16:51 GMT</pubDate><dc:creator>Gerard O Carroll</dc:creator></item><item><title>Subclassing a SF ComboBox</title><link>http://forum.strataframe.net/Topic25271-6-1.aspx</link><description>I have subclassed a SF combo box as:&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;[codesnippet]public class ComboBox : MicroFour.StrataFrame.UI.Windows.Forms.ComboBox&lt;BR&gt;{&lt;BR&gt;}[/codesnippet]&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;&lt;P&gt;However, when I use this, I get an error. Do I need to run the base code for ListPopulatingEvent (as I use this) or any other code in my subclassed control ?&lt;/P&gt;&lt;/FONT&gt;</description><pubDate>Wed, 25 Nov 2009 05:45:41 GMT</pubDate><dc:creator>Gerard O Carroll</dc:creator></item><item><title>Error trying to Restore Strataframe database</title><link>http://forum.strataframe.net/Topic25175-6-1.aspx</link><description>I am trying to move my app from one Machine to another. I have backed up the StrataFrame database on Machine1. When I do a restore on Machine2 I get message in SSMS: &lt;P&gt;[codesnippet]Restore failed for Server Server2&lt;BR&gt;The backup Set holds a backup of a database other than the existing 'StrataFrame' database.[/codesnippet] &lt;/P&gt;&lt;P&gt;The same thing happens for the StarataframeSample database. But if I backup my own database, it restores fine onto Server2. Anybody throw any light on whats happening here ?</description><pubDate>Thu, 12 Nov 2009 05:35:07 GMT</pubDate><dc:creator>Gerard O Carroll</dc:creator></item><item><title>c# keyword in table using business object mapper</title><link>http://forum.strataframe.net/Topic25236-6-1.aspx</link><description>How do I use the business object mapper on an SQL table which contains a field that is a key work in c#? &lt;br&gt;The field name is void. &lt;br&gt;&lt;br&gt;I do not have control of these field names. I need to query data from an existing ERP system.&lt;br&gt;&lt;br&gt;Is there anyway to use the @ prefix on the field names?&lt;br&gt;&lt;br&gt;I actually do not need this field in the result set. Is there a way to instruct the BOM to use only certain fields for the BO definition?</description><pubDate>Tue, 17 Nov 2009 21:18:35 GMT</pubDate><dc:creator>Victor Sousa</dc:creator></item><item><title>Business Object Performance</title><link>http://forum.strataframe.net/Topic25133-6-1.aspx</link><description>I have a routine that is importing Foxpro Data. This week  made some changes and added a few larger tables(more records and more fields) to the import routine that has been running for months. These "new" tables are by no means crazy huge as the largest one is right around 75,000 records and 30 or so fields. This routine has been running at night so I never really noticed if this has always been an issue. however while debugging changes noticed that the performance was lacking..  &lt;P&gt;Once I started looking onto it I was very suprised at the perfomance vs a plain datatable. I did expect a business object to have some additional overhead over a vanilla datatable , however I was expecting a very minimal difference compared to the results I am seeing. Perhaps I am missing something easy like not setting a business object property or I am looking at something completly wrong. Whatever it is there seems to be a huge performance difference that I would like to get to the bottom of it. &lt;/P&gt;&lt;P&gt;To take anything I was doing out of the mix I created a test project that uses the stataframe sample orderitems table as a source and destination bo. I then created a standard plain old vanilla BO mapped to the items table. The only business object property that is changed from default is the "allowsnullvaluesonnewrow" is set to true.&lt;/P&gt;&lt;P&gt;Basically I fill a 'source' business object Then loop through the 'source' business object and create a new row on a destination object and sets the value of a field on the destination object from the source . &lt;/P&gt;&lt;P&gt;[codesnippet]&lt;/P&gt;&lt;P&gt;Business Object Example&lt;/P&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;&lt;P&gt;'Set Start Time&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;starttime = DateTime.Now&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;'Loop through filled Business Object&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;For&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Each&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; bo &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; itemsbo &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;In&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SourceBO.GetEnumerable&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;'Create New Row in Destination Business Object&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;DestinationBO.NewRow()&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;'Set Value of 1 field&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;DestinationBO.orit_Quantity = bo.orit_Quantity&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Next&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;'Set Stop Time&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;stoptime = DateTime.Now&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;'Set Elapsed&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;elapsed_time = stoptime.Subtract(starttime)&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;[/codesnippet]&lt;/P&gt;&lt;P&gt;[codesnippet]&lt;/P&gt;&lt;P&gt;Same routine using a vanilla datatable.&lt;/P&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;&lt;P&gt;'Set Start Time&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;starttime = DateTime.Now&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;'Loop through filled Business Object&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;For&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Each&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; bo &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; itemsbo &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;In&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SourceBO.GetEnumerable&lt;/P&gt;&lt;P&gt;lorow = dt.NewRow&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;'-- Set Value of 1 fld&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size=2&gt;lorow(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"orit_Quantity"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;) = bo.orit_Quantity&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#008000&gt;'-- Add the new row to the data table&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;dt.Rows.Add(lorow)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Next&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;'Set Stop Time&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;stoptime = DateTime.Now&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;'Set Elapsed&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;elapsed_time = stoptime.Subtract(starttime)&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;P&gt;[/codesnippet]&lt;/P&gt;&lt;P&gt;Here are my results based on 50,000 records from the strataframe order items table. These times do not include any filling of data or saving of data. &lt;/P&gt;&lt;P&gt;Use a bo to create a new row and set no values                    .54 seconds&lt;/P&gt;&lt;P&gt;use a bo to create a new row and set the value of one field     5.04 seconds&lt;/P&gt;&lt;P&gt;use a bo to create a new row and set the value of two fields   9.51 seconds&lt;/P&gt;&lt;P&gt;use a bo to create a new row and set the value of 3 fields     14.17 seconds&lt;/P&gt;&lt;P&gt;----------------Data Table--------&lt;/P&gt;&lt;P&gt;Use a datatable to create a new row and set no values            .21 seconds&lt;/P&gt;&lt;P&gt;use a dt to create a new row and set the value of one field      .31 seconds&lt;/P&gt;&lt;P&gt;use a dt to create a new row and set the value of two field      .45 seconds&lt;/P&gt;&lt;P&gt;use a dt to create a new row and set the value of 3  fields      .51 seconds&lt;P&gt; </description><pubDate>Fri, 06 Nov 2009 11:36:49 GMT</pubDate><dc:creator>Paul Chase</dc:creator></item><item><title>Storing and then binding to a collection</title><link>http://forum.strataframe.net/Topic25124-6-1.aspx</link><description>Hear me out.  This is either an interesting idea or the Vicodin the dentist gave me yesterday is messing with me.&lt;br&gt;&lt;br&gt;I am writing an app that fills in insurance policies using PDF forms.  The forms are very structured in that Additional Insured - for example - may have 12 fields named ADDINSURED1 ( to 12)  on the PDF form. There are perhaps 100 distinct fields like this on the 50 or so forms that need to be filled out, and some fields appear on more than one form.  There are potentially, therefore, in the normalized tabular data world 100 child tables of the policy table.  But the number of possible children is quite fixed ( by the PDF forms - which I do not in any way control ) and is always between 2 and 21.&lt;br&gt;&lt;br&gt;All data entry is done on the policy form (and in the future options will exist for reading / translating data into the policy storage structure from other systems ).  Then about 50 forms are all filled out, another 50 static PDFs added, all the forms sequenced a certain way and it is all joined into one big PDF.  ( iTextsharper is the indispensible tool for all this and once you get the hang of it it is quite elegant and very fast )&lt;br&gt;&lt;br&gt;Creating a data-entry interface for this is the challenge, and it is preferred that there be some other approach than 100 child tables.&lt;br&gt;&lt;br&gt;I have chosen, so far, to use multiline text boxes for the data entry, and then parse the rows into the fields for that datum so that a textbox for Additional Insured could hold up to 18 lines and would fill the 18 text fields on the form.&lt;br&gt;&lt;br&gt;This is working quite well and the client loves it.  &lt;br&gt;&lt;br&gt;The problem of course is that since the data is just string, dates, currency amount,  logicals etc cannot be easily validated and interface gives no help.&lt;br&gt;&lt;br&gt;But if I could store collections of however many items there were to enter and then easily bind to the collection items, it would be ideal&lt;br&gt;&lt;br&gt;For example, a possible 5 dates in a collection would be stored in one sql column - a byte() {} I suppose ? - and then read out and bound to 5 controls on the form.  &lt;br&gt;&lt;br&gt;My question is has anyone done anything like that and are there any hints for an elegant and reasonably generic way to accomplish this collection binding ?  &lt;br&gt;&lt;br&gt;Ideas would be appreciated.  This is a situation where there is enough of this kind of stuff that it would be worth figuring out, but I think on an instance basis it could come in handy in a lot of places.&lt;br&gt;&lt;br&gt;Thoughts?&lt;br&gt;</description><pubDate>Thu, 05 Nov 2009 12:31:05 GMT</pubDate><dc:creator>Charles R Hankey</dc:creator></item></channel></rss>