StrataFrame Forum

Error Creating New Profile In DDT

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

By Clayton Hoyt - 10/13/2006

SqlException
 Invalid object name 'DBEProfile'.

Source     : .Net SqlClient Data Provider

Stack Trace:
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteScalar()
   at MicroFour.StrataFrame.Data.DbDataSourceItem.InternalExecuteScalar(DbCommand Command, Boolean IsTransactional, String TransactionKey)
   at MicroFour.StrataFrame.Data.DbDataSourceItem.ExecuteScalar(DbCommand Command)
   at MicroFour.StrataFrame.Business.BusinessLayer.ExecuteScalar(DbCommand CommandToExecute)
   at MicroFour.StrataFrame.Business.DBEProfileBO.GetTitleCount()
   at MicroFour.StrataFrame.Business.DBEProfileBO.DBEProfileBO_CheckRulesOnCurrentRow(CheckRulesEventArgs e)
   at MicroFour.StrataFrame.Business.BusinessLayer.raise_CheckRulesOnCurrentRow(CheckRulesEventArgs e)
   at MicroFour.StrataFrame.Business.BusinessLayer.OnCheckRulesOnCurrentRow(CheckRulesEventArgs e)
   at MicroFour.StrataFrame.Business.BusinessLayer.CheckRules(Boolean RaiseCheckedEvent)
   at MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.Save(Boolean Transactional, String TransactionKey)
   at MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.Save()
   at MicroFour.StrataFrame.Data.ProfileProperties.cmdSave_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)

By Trent L. Taylor - 10/13/2006

Your StrataFrame connection is wrong....I forgot to change that program to prevent you from changing the database.  I changed it in the Visual Studio environment to prevent this from happening.  Bottom line is that your StrataFrame connection is not setup correctly...to change your database connection, close down the DDT and do the following:

  1. Click on the StrataFrame -> Database Connection menu item within Visual Studio 
  2. When it opens, select the StrataFrame Data Store connection that is active and click Edit...
  3. Click Next >
  4. Make sure that the server and connection information is correct...the database name will be StrataFrame...you will not be able to change this.  If this is a database other than StrataFrame...this is your problem.  In this case, back out and create a new connection (click Add instread of Edit)
  5. Once you have completed the connection wizard select the correct connection string and then click the Select button
  6. Go back into the DDT and you will be fine.
By Clayton Hoyt - 10/13/2006

Hi Trent

Unfortunatly this did not do the trick. I'm getting the same error. I checked and StrataFrame is the database that my StrataFrame Data Store is pointing at.

Also, when I click OPEN in the DDT, I get this

UIException
 Dynamically populating the ListView failed.  Could not create and fill the business object of type 'MicroFour.StrataFrame.Business.DBEProfileBO'
TargetInvocationException
 Exception has been thrown by the target of an invocation.
SqlException
 Invalid object name 'dbo.DBEProfile'.

Source     : MicroFour StrataFrame UI

Stack Trace:
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
   at MicroFour.StrataFrame.Data.DbDataSourceItem.GetDataTable(DbCommand Command, OnChangeEventHandler CallBack)
   at MicroFour.StrataFrame.Data.SqlDataSourceItem.GetDataTable(DbCommand Command, OnChangeEventHandler CallBack)
   at MicroFour.StrataFrame.Data.DbDataSourceItem.GetDataTable(String Statement, OnChangeEventHandler CallBack)
   at MicroFour.StrataFrame.Data.DataLayer.GetDataTable(String Statement, Boolean RegisterNotification)
   at MicroFour.StrataFrame.Business.BusinessLayer.FillDataTable(String SelectStatement)
   at MicroFour.StrataFrame.Business.DBEProfileBO.GetAll()
   at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at MicroFour.StrataFrame.UI.Windows.Forms.ListView.GetFilledBusinessObject(Object[] Parameters)
   at MicroFour.StrataFrame.UI.Windows.Forms.ListView.PopulateListView(Object[] Parameters)
   at MicroFour.StrataFrame.UI.Windows.Forms.ListView.InitializeObject()
   at MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.InitializeFormLoadObjects()
   at MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.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)

By Trent L. Taylor - 10/13/2006

I promise there is something wrong with your connection.  The StrataFrame database in the server your are pointing to wither does not exist or is damaged.  Manually open up the StrataFrame database in the server and see if the DBEProfile table exists...if so what are the columns.

The reason the ListView failed to populate is because the connection to the server specified could not find the DBEProfile table.

By Flavelle Ballem - 12/5/2006

Clayton:

Is there any chance that your installation of SQL Server is case-sensitive?

Regards,

Flavelle

By Trent L. Taylor - 12/7/2006

In this case I really think it has more to do with the connection.  At this point case sensitivity has not had a chance to cause a problem.  This has to do with the actual connection itself....i.e. pointing to the wrong database (something other than StrataFrame).
By Flavelle Ballem - 12/7/2006

I was getting similar errors when I tried to use DDT with a case sensitive installation of SQLExpress. In any code, if there is an attempt made to connect to a table named 'DBEProfile' on a database named 'strataFrame', 'Strataframe', or any variation on the name 'StrataFrame' other than the correct one, the connection will fail because the database does not exist if the SQL Express installation is case sensitive.

The reason that I'm suggesting that the Database name may be a problem within code is because when you have a case sensitive installation of SQLExpress, you can attach a database that is case insensitive and as long as the name of the database is handled on a case sensitive basis, then references inside the database itself are case insensitive. For example, 'Customer' table could be referenced as 'customer', 'CUSTOMER', or any other variation of the word 'Customer'.

I finally gave up the battle and now have a case insensitive installation of SQL Express - not a problem using StrataFrame, including DDT since. Other than case sensitivity, the installation was identical. By the way, the installation process for the StrataFrame executable works on both case sensitive or case insensitive installations of SQL Express. In my initial testing of the StrataFrame Framework, going directly to the SQL Server itself, things appeared to work - although I can't guarantee that you wouldn't have the problem elsewhere in the Framework. The DDT never worked on a case sensitive installation, but did work on a case insensitive installation.

That was why I asked the question. I haven't installed the Source Code version, so I can't check to see if I'm right.

Regards,

Flavelle

By Trent L. Taylor - 12/8/2006

Yes, I recall when you ran into this...and you are exactly right that this can cause the exact same symptoms.  I wasn't suggesting that your diagnosis was invalid at all.  I was just indicating that we work the percentages....and out of all of our installs, this generally comes to the connection.  I appreciate your input. Smile