﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » StrataFrame Application Framework - V1 » Business Objects and Data Access (How do I?)  » Cannot Create Insert command</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Mon, 25 May 2026 15:00:29 GMT</lastBuildDate><ttl>20</ttl><item><title>Cannot Create Insert command</title><link>http://forum.strataframe.net/FindPost31756.aspx</link><description>I am getting an error adding a record to a table that does not have a&amp;nbsp;primary key. The message states that I cannot insert a command because PrimaryKeyisAutoincremented = true and the PrimaryKeyField is not a valid auro-increment data type. &lt;br/&gt;&lt;br/&gt;The table does not have a Primary Key or autoincrementing primary key set to Auto increment. &lt;br/&gt;&lt;br/&gt;Any Ideas? &lt;br/&gt;&lt;br/&gt;Sample code below.&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Create a new record&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .NewRow()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Save Log Record&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LocHL7Data.MessageID = System.Guid.NewGuid.ToString() 'Loc_PID_SEG_BO.MessageID&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'LocHL7Data.MessageSize = oMsg.&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LocHL7Data.VendorVersion = oMsg.VendorVersion&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LocHL7Data.VendorName = oMsg.VendorName&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LocHL7Data.MsgControl = sCrlID&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LocHL7Data.PartnerAPP = ""&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LocHL7Data.DateLoaded = System.DateTime.Now.ToString&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LocHL7Data.HL7Message = oMsg.HL7&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LocHL7Data.SegmentCount = oMsg.SegmentCount&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LocHL7Data.MsgType = sMsgType1&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Save the record&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If .Save() &amp;lt;&amp;gt; MicroFour.StrataFrame.Data.SaveUndoResult.Success Then&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox("Save Failed...")&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End With&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;</description><pubDate>Thu, 31 Jan 2013 18:12:54 GMT</pubDate><dc:creator>Michael Reese</dc:creator></item><item><title>RE: Cannot Create Insert command</title><link>http://forum.strataframe.net/FindPost31770.aspx</link><description>Mi Michael, Ben,&lt;br/&gt;&lt;br/&gt;You are welcome.</description><pubDate>Thu, 31 Jan 2013 18:12:54 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Cannot Create Insert command</title><link>http://forum.strataframe.net/FindPost31768.aspx</link><description>Thanks so much guys, I went down that road yesterday and all is well!&lt;span style="float: left;" id="EmotIconctl00_ctlContentPlaceHolder_ctl00_ctlPostControl_ctlPanelBar_txtPost_smMenu" &amp;#111;nmouseover="InstantASPRichTextBox.prototype.showMenu('ctl00_ctlContentPlaceHolder_ctl00_ctlPostControl_ctlPanelBar_txtPost', 'EmotIconctl00_ctlContentPlaceHolder_ctl00_ctlPostControl_ctlPanelBar_txtPost_smMenu','EmotIcon', false, false);" &amp;#111;nclick="InstantASPRichTextBox.prototype.showMenu('ctl00_ctlContentPlaceHolder_ctl00_ctlPostControl_ctlPanelBar_txtPost', 'EmotIconctl00_ctlContentPlaceHolder_ctl00_ctlPostControl_ctlPanelBar_txtPost_smMenu','EmotIcon', true, false);"&gt;&lt;/span&gt;</description><pubDate>Thu, 31 Jan 2013 13:50:51 GMT</pubDate><dc:creator>Michael Reese</dc:creator></item><item><title>RE: Cannot Create Insert command</title><link>http://forum.strataframe.net/FindPost31767.aspx</link><description>Good call, Edhy. &amp;nbsp;A bulk insert into SQL is always the fastest way to go. &amp;nbsp;It's not worth the energy unless you're inserting 50+ records at a time, but it's an order of magnitude faster when you're inserting 1000+ records at a time.&lt;br/&gt;&lt;br/&gt;&lt;div&gt;Michael might be just inserting the records as the HL7 messages are received, in which case the bulk operation wouldn't be worth the energy, but if it's a batch operation that inserts 100+ messages at the same time and he ends up with 1000+ NTE segments that need to be inserted, then a bulk copy is worth considering.</description><pubDate>Thu, 31 Jan 2013 08:33:18 GMT</pubDate><dc:creator>StrataFrame Team</dc:creator></item><item><title>RE: Cannot Create Insert command</title><link>http://forum.strataframe.net/FindPost31766.aspx</link><description>Hi Michael,&lt;br/&gt;&lt;br/&gt;If you are parsing millions of record in the BO and then want to do an insert to the table, instead of using the BO to insert each record which could take a long time, you can use a combination of the BO datatable and SQLBulkCopy to speed up the process of the inserting the records.&lt;br/&gt;Check out this code:&lt;br/&gt;&lt;span&gt;[quote][code]&lt;br/&gt;'' Instead of saving the records, lets use sqlBulkCopy to speed up the import to SQL process&lt;br/&gt;Using destinationConnection As SqlClient.SqlConnection = _&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New SqlClient.SqlConnection(MicroFour.StrataFrame.Data.DataLayer.DataSources(Me.BizCustomersItems1.DataSourceKey).ConnectionString)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; destinationConnection.Open()&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Using bulkCopy As SqlClient.SqlBulkCopy = New SqlClient.SqlBulkCopy(destinationConnection)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bulkCopy.DestinationTableName = Me.BizCustomersItems1.TableNameAndSchema&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bulkCopy.BatchSize = 50&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bulkCopy.BulkCopyTimeout = 0&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Create a column mapping with all fields in the BO&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each fieldName As String In .AllFieldsList()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bulkCopy.ColumnMappings.Add(fieldName, fieldName)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bulkCopy.WriteToServer(Me.BizCustomersItems1.CurrentDataTable)&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bulkCopy.Close()&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ''-- Accept the changes to the data table to avoid message asking to save records.&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.BizCustomersItems1.CurrentDataTable.AcceptChanges()&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch ex As Exception&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox(ex.ToString)&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Finally&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.WaitWindow1.HideWaitWindow()&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Using&lt;br/&gt;End Using&lt;br/&gt;[/code]&lt;/span&gt;&lt;span&gt;[/quote]&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;Basically I am importing some records in the Me.BizCustomersItems1 business object, since this import can have several thousands of records, I use the SQLBulkCopy passing the BO.CurrentDataTable and then accepting the changes to the Me.BizCustomersItems1 bo to avoid SF to complaint about those records, or you can also do a Me.BizCustomersItems1.Clear()&lt;br/&gt;&lt;br/&gt;Hope this is clear and can help you in any way.</description><pubDate>Thu, 31 Jan 2013 02:09:22 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Cannot Create Insert command</title><link>http://forum.strataframe.net/FindPost31765.aspx</link><description>Thanks , I'll give is a shot. I want to do as much as I can through the SF BOs. &lt;br/&gt;&lt;br/&gt;I'm rewriting (2 years old application)&amp;nbsp;a solution and&amp;nbsp;was wondering how I successfully pulled it off before and then checked my my code and realized that I used a ADOSqlServer connection on these tables. &lt;br/&gt;&lt;br/&gt;Michael</description><pubDate>Wed, 30 Jan 2013 10:26:45 GMT</pubDate><dc:creator>Michael Reese</dc:creator></item><item><title>RE: Cannot Create Insert command</title><link>http://forum.strataframe.net/FindPost31764.aspx</link><description>HL7 you probably never update the records. &amp;nbsp;If you delete an entire message, then you also delete all of the children with the same MessageID, yes?&lt;br/&gt;&lt;br/&gt;&lt;div&gt;So, the children all have a foreign key to the MessageID of the MSH... it would make sense for that to be the clustered index of the table.&lt;br/&gt;&lt;br/&gt;&lt;div&gt;I think the best way of doing this would be to leave the PrimaryKeyIsAutoIncremented set to false, that lets you assign the primary key and tells SF not to negative increment the column. &amp;nbsp;Then, move the Public Overrides ReadOnly Property PrimaryKeyFields As String() from the designer file to your main file and return "MessageID" or whatever field name you need in the string array rather than an empty string array. &amp;nbsp;Moving this to the main code file will keep it from being overriden when you re-map your business objects. &amp;nbsp;Instead, when you rebuild the partial classes, it will regenerate the PrimaryKeyFields property and you will need to go delete it from the designer file before you can build (better than figuring out at runtime that it's wrong). &amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;This will trick SF into thinking that MessageID is the PK for each of the BOs, but will still let you insert the value rather than expecting it from the database.&lt;br/&gt;&lt;br/&gt;&lt;div&gt;Give that a try and let me know. &amp;nbsp;I'll make sure we have a graceful way to handle it for SFv2 :)</description><pubDate>Wed, 30 Jan 2013 10:02:35 GMT</pubDate><dc:creator>StrataFrame Team</dc:creator></item><item><title>RE: Cannot Create Insert command</title><link>http://forum.strataframe.net/FindPost31763.aspx</link><description>Thanks Ben, &lt;br/&gt;&lt;br/&gt;I guess I could but it will take a lot of work. &lt;br/&gt;&lt;br/&gt;I have created and HL7 data warehouse that reads HL7 messages and parse the data into segment tables. This is why&lt;br/&gt;&lt;br/&gt;MSH MessageID = Generated&lt;br/&gt;&lt;br/&gt;PID&amp;nbsp;MessageID = MSH MessageID&lt;br/&gt;&lt;br/&gt;OBX MessageID = MSH MessageID&lt;br/&gt;&lt;br/&gt;NTE MessageID = MSH MessageID&lt;br/&gt;&lt;br/&gt;Im dealing in millions. </description><pubDate>Wed, 30 Jan 2013 09:32:53 GMT</pubDate><dc:creator>Michael Reese</dc:creator></item><item><title>RE: Cannot Create Insert command</title><link>http://forum.strataframe.net/FindPost31762.aspx</link><description>That's correct. &amp;nbsp;StrataFrame requires that each table have a PrimaryKey. &amp;nbsp;It needs this so that it knows how to save an individual row. &amp;nbsp;Without a PK, StrataFrame would be able to insert rows, but it would not be able to update or delete those rows. &amp;nbsp;It does not have the functionality to do an update or a delete with a complex where clause; the only where clause it can generate for an update or delete is the matching of the PK value.&lt;br/&gt;&lt;br/&gt;&lt;div&gt;In fact, this is something we debated for SFv2... do we allow entities to map to tables that do not have a primary key. &amp;nbsp;We ended up on the same side of the fence as SFv1, which is that each table requires a PK. &amp;nbsp;Pre-beta, it's certainly not set in stone, so I could be convinced otherwise.&lt;br/&gt;&lt;br/&gt;&lt;div&gt;Would it break your database logic to add a PK to the table? &amp;nbsp;Do you ever need to be able to update/delete rows in this table, or only insert them? &amp;nbsp;Without a PK, you would have to manually specify the where conditions during an update or delete. &amp;nbsp;Let me know.</description><pubDate>Wed, 30 Jan 2013 09:20:44 GMT</pubDate><dc:creator>StrataFrame Team</dc:creator></item><item><title>RE: Cannot Create Insert command</title><link>http://forum.strataframe.net/FindPost31761.aspx</link><description>Thanks, I was looking for that in the BO properties but could not find it. &lt;br/&gt;&lt;br/&gt;This is the exception thrown&lt;br/&gt;&lt;br/&gt;Is says that DataLayer Exception "Cannot Create Insert command because the BO does not contain any primaryKeyFields.</description><pubDate>Wed, 30 Jan 2013 08:44:23 GMT</pubDate><dc:creator>Michael Reese</dc:creator></item><item><title>RE: Cannot Create Insert command</title><link>http://forum.strataframe.net/FindPost31760.aspx</link><description>Hi Michael,&lt;br/&gt;&lt;br/&gt;You manage these properties on a per BO basis so you have to make sure you configure each BO as its table requires.&amp;nbsp; Look at those properties descriptions and you should be able to set them properly as needed.</description><pubDate>Wed, 30 Jan 2013 08:28:25 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: Cannot Create Insert command</title><link>http://forum.strataframe.net/FindPost31759.aspx</link><description>Hrm. &amp;nbsp;What is the exception that it throws?</description><pubDate>Wed, 30 Jan 2013 08:26:38 GMT</pubDate><dc:creator>StrataFrame Team</dc:creator></item><item><title>RE: Cannot Create Insert command</title><link>http://forum.strataframe.net/FindPost31758.aspx</link><description>Thanks Ben, &lt;br/&gt;&lt;br/&gt;That did it. &lt;br/&gt;&lt;br/&gt;So, now I have another problem.&amp;nbsp;The business object throws an error when I save&amp;nbsp;to&amp;nbsp;another table that does not have a primary key when I attempt to create a record.&lt;br/&gt;&lt;br/&gt;Thanks&lt;br/&gt;&lt;br/&gt;Michael&amp;nbsp; </description><pubDate>Wed, 30 Jan 2013 08:03:24 GMT</pubDate><dc:creator>Michael Reese</dc:creator></item><item><title>RE: Cannot Create Insert command</title><link>http://forum.strataframe.net/FindPost31757.aspx</link><description>On the business object itself, is the PrimaryKeyIsAutoIncremented property set to True? &amp;nbsp;It should be in the CRUD category in the designer. It doesn't matter how the data source's table is actually configured. &amp;nbsp;If that property on the business object it True, it's going to cause that error.</description><pubDate>Tue, 29 Jan 2013 16:41:59 GMT</pubDate><dc:creator>StrataFrame Team</dc:creator></item></channel></rss>