StrataFrame Forum

Problems with upper and Lowercase in BO

http://forum.strataframe.net/Topic20703.aspx

By Rainer Kempf, RK - 11/11/2008

Hello



since 2 days i had a problem with my Database.



I was changing the Sorting mechanism from German_TelefonBook__ to Latin_general_Bin2



Since this time all BO has problems with Upper and Lowercase with the Fieldnames of

the tables.



If i change the fieldname in table to exactly same string as it is in BO then it works.

But i think there should be another way to avoid this stange behavior.



I hope you can help me.



Thanks



Rainer
By Peter Jones - 11/11/2008

Hi,

A couple of thoughts:

1) Regenerate your all your BO's.

2) Try going into Project Propereties > Compile > Option Compare - set to Text.

Cheers, Peter

By Trent L. Taylor - 11/11/2008

I agree with Peter, I would rebuild your partials first and recompile to see if the problem persists.
By Rainer Kempf, RK - 11/11/2008

Hi,



Thanks for the tips, but they don't work.



It happens also with SF-Own BO



When i Call this :





Public Sub OpenSecurityDialog()

Using loDialog As New SecurityDialog(False, False)

loDialog.ShowDialog()

End Using



End Sub



then i got following error :



When i check table (SFSROLES) in Database field is defined as "rl_Role"



If i change rl_Role to rl_role then it works.





It seems i had changed something on Database which i can't remember. but for my opinion

i changed only sort order.







SqlException

Ungültiger Spaltenname 'rl_role'.



Source : .Net SqlClient Data Provider



Stack Trace:

bei System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

bei System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)

bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

bei System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

bei System.Data.SqlClient.SqlDataReader.ConsumeMetaData()

bei System.Data.SqlClient.SqlDataReader.get_MetaData()

bei System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

bei System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

bei System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

bei System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

bei System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

bei System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)

bei System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)

bei System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)

bei System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)

bei System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)

bei MicroFour.StrataFrame.Data.DbDataSourceItem.GetDataTable(DbCommand Command, OnChangeEventHandler CallBack)

bei MicroFour.StrataFrame.Data.SqlDataSourceItem.GetDataTable(DbCommand Command, OnChangeEventHandler CallBack)

bei MicroFour.StrataFrame.Data.DataLayer.GetDataTable(DbCommand Command, Boolean RegisterNotification)

bei MicroFour.StrataFrame.Business.BusinessLayer.FillDataTable(DbCommand CommandToExecute)

bei MicroFour.StrataFrame.Security.BusinessObjects.SFSRolesBO.FillAll(Int32 ProjectPK)

bei MicroFour.StrataFrame.Security.SecurityDialog.RolesBO_ParentFormLoading()

bei MicroFour.StrataFrame.Business.BusinessLayer.raise_ParentFormLoading()

bei MicroFour.StrataFrame.Business.BusinessLayer.OnParentFormLoading()

bei MicroFour.StrataFrame.Business.BusinessLayer.RaiseParentFormLoadingEvent()

bei MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.InitializeFormLoadObjects()

bei MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.OnLoad(EventArgs e)

bei System.Windows.Forms.Form.OnCreateControl()

bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)

bei System.Windows.Forms.Control.CreateControl()

bei System.Windows.Forms.Control.WmShowWindow(Message& m)

bei System.Windows.Forms.Control.WndProc(Message& m)

bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)

bei System.Windows.Forms.ContainerControl.WndProc(Message& m)

bei System.Windows.Forms.Form.WmShowWindow(Message& m)

bei System.Windows.Forms.Form.WndProc(Message& m)

bei System.Windows.Forms.Control.ControlNativewindow.OnMessage(Message& m)

bei System.Windows.Forms.Control.ControlNativewindow.WndProc(Message& m)

bei System.Windows.Forms.Nativewindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)



I hope somebody does know i trick to fix this strange behaviour.



thanks again



Rainer
By Trent L. Taylor - 11/12/2008

It looks like your structures are not up to date or your connection string within your app is not point to a database with the security tables.  If this is happening across the board, then that should be a pretty clear indication that your data structures or environment are one of the following:

  1. Not up to date
  2. Connection string pointing to the wrong database or location
  3. You are running with out of date BO assemblies

There is a 99.9% chance it is one of these things.

By Rainer Kempf, RK - 11/13/2008

Hello Trent



Thanks for the reply



I will testing again your advices and then

report whats happen.



I am still now by customer for rest of week.

so it will takes some times...







thanks again

Rainer