Oracle and SQL BO


Author
Message
Ross L. Rooker, Sr.
Ross L. Rooker, Sr.
StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)
Group: Forum Members
Posts: 153, Visits: 462
Created a BO based on SQL. Then created a SF Windows front end with a SF Maintenance form. Works perfectly. Then created a mirror image Oracle BO of the SQL BO and also a mirror image of the SF Maintenance front end for the Oracle. Works perfectly.

Although the 2 BOs are mirror images in terms of the Project Names, Database Names, Table Names and Column Names, the Primary Key in Oracle in a type "Numeric" and mapped as "Decimal" in Oracle but in SQL is a type of "Int".

Thinking that all the Data Related typing was in the BOs, I then changed the SQL Project to allow a configuration parameter in the application.config file to have a setting for ORACLE or SQL. Then based on this setting the startup would set the DataSource correctly. Then copied the Oracle BO.DLL and PDB over the SQL based ones in the RELEASE folder. Then changed the setting in the SQL application.config to use Oracle. The app starts, I run the SF Maint form, then click SEARCH and in the BROWSE it shows the Oracle data, but when I click OK to select a record I get the following error:

MissingMethodException
  Method not found: 'Int32 TrustedVALET_BO.tbl_BargeClass_1.get_BARGECLASS_PKCODEID()'.

Seems that something outside of the Oracle BO is trying to call the primary key as an INT32 (the SQL BO).

As a test, I then reversed the above:

Took the ORACLE based front end, changed it to use a SQL DataSource, then copied the SQL BO.DLL and PDB files over the Oracle generated ones in the RELEASE folder and ran the Executable. When I ran the SF Maintenance and clicked SEARCH, the SQL data displayed. When clicking OK, the following error appeared:

MissingMethodException
  Method not found: 'System.Decimal TrustedVALET_BO.tbl_BargeClass_1.get_BARGECLASS_PKCODEID()'.

Since the BO is the SQL BO and the DataSource is SQL, what else do I need to do to adjust the front end to make this work? IE... where is StrataFrame figuring out the type of the primary key outside of the bo?

I also need your help on the ASAP. Thanks.

Ross L. Rooker, Sr.
Ross L. Rooker, Sr.
StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)StrataFrame User (195 reputation)
Group: Forum Members
Posts: 153, Visits: 462
Please respond ASAP

FYI, here is a dump to the full error:

MissingMethodException
  Method not found: 'Int32 TrustedVALET_BO.tbl_BargeClass_1.get_BARGECLASS_PKCODEID()'.

Source     : TrustedVALET

Stack Trace:
   at TrustedVALET.forms.maintenance.frmBargeClass_1.frmBargeClass_1_Maintenance.tbl_BargeClass_1_Navigated(NavigatedEventArgs e)
   at MicroFour.StrataFrame.Business.BusinessLayer.NavigatedEventHandler.Invoke(NavigatedEventArgs e)
   at MicroFour.StrataFrame.Business.BusinessLayer.raise_Navigated(NavigatedEventArgs e)
   at MicroFour.StrataFrame.Business.BusinessLayer.OnNavigated(NavigatedEventArgs e)
   at MicroFour.StrataFrame.Business.BusinessLayer.OnCurrentDataTableRefilled()
   at MicroFour.StrataFrame.Business.BusinessLayer.ChangeCurrentDataTable(DataTable NewTable, Boolean AcceptChanges, Boolean IsSharedTable)
   at MicroFour.StrataFrame.Business.BusinessLayer.CopyDataFrom(BusinessLayerBase BusinessObject, BusinessCloneDataType CopyType)
   at MicroFour.StrataFrame.UI.Windows.Forms.BrowseDialogwindow.CopyDataAndCloseForm()
   at MicroFour.StrataFrame.UI.Windows.Forms.BrowseDialogwindow.cmdOK_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativewindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativewindow.WndProc(Message& m)
   at System.Windows.Forms.Nativewindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search