StrataFrame Forum

Object Mapper

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

By Valdair Ziegler - 3/13/2008

Olá .

Ao mapear meus BO's tenho a seguinte msg de erro. Isso acontece após a atualização do SF para a versão 1.6.5.  Já tentei várias configurações diferentes e não sei o que pode ser...

Essa é a mensagem.

Abraços.....

BusinessLayerException
  An error occurred while refreshing the data from field 'DTEproject_item_exceptionsBO.piex_FieldDescription' to property 'Text' on control 'Textbox1.'  Are you missing FieldPropertyDescriptor forcustom prope a rty?
ArgumentException
  Column 'piex_FieldDescription' does not belong to table DTEproject_item_exceptions.

Source     : MicroFour StrataFrame Business

Stack Trace:
   at System.Data.DataRow.GetDataColumn(String columnName)
   at System.Data.DataRow.get_Item(String columnName)
   at MicroFour.StrataFrame.AddIns.DTEproject_item_exceptionsBO.ᜀ.GetValue(Object component)
   at System.Windows.Forms.BindToObject.GetValue()
   at System.Windows.Forms.Binding.PushData(Boolean force)
   at System.Windows.Forms.Binding.UpdateIsBinding()
   at System.Windows.Forms.Binding.CheckBinding()
   at System.Windows.Forms.Binding.SetListManager(BindingManagerBase bindingManagerBase)
   at System.Windows.Forms.ListManagerBindingsCollection.AddCore(Binding dataBinding)
   at System.Windows.Forms.BindingsCollection.Add(Binding binding)
   at System.Windows.Forms.BindingContext.UpdateBinding(BindingContext newBindingContext, Binding binding)
   at System.Windows.Forms.Binding.SetBindableComponent(IBindableComponent value)
   at System.Windows.Forms.ControlBindingsCollection.AddCore(Binding dataBinding)
   at System.Windows.Forms.ControlBindingsCollection.Add(Binding binding)
   at MicroFour.StrataFrame.Business.BusinessLayer.AddBinding(Control ControlToRefresh, String PropertyName, String FieldName)
   at MicroFour.StrataFrame.Business.BusinessLayer.RefreshControl(IBusinessBindable ControlToRefresh, Boolean DataPresent)
   at MicroFour.StrataFrame.Business.BusinessLayer.RefreshBoundControls()
   at MicroFour.StrataFrame.Business.BusinessLayer.raise_Navigated(NavigatedEventArgs e)
   at MicroFour.StrataFrame.Business.BusinessLayer.OnNavigated(NavigatedEventArgs e)
   at MicroFour.StrataFrame.Business.BusinessLayer.Navigate(BusinessNavigationDirection Direction, Int32 AbsoluteIndex, Object[] PrimaryKeyValues, Boolean AttemptToCheckRules, Boolean IsRefill)
   at MicroFour.StrataFrame.Business.BusinessLayer.Add(Boolean CheckSecurity)
   at MicroFour.StrataFrame.Business.BusinessLayer.Add()
   at MicroFour.StrataFrame.AddIns.DTEproject_item_exceptionsBO.GetOrCreateException(Int32 ProjectItemPK, String FieldName)
   at MicroFour.StrataFrame.AddIns.PartialClassBuilderExceptionDialog.ᜀ()
   at MicroFour.StrataFrame.Business.BusinessLayer.raise_ParentFormLoading()
   at MicroFour.StrataFrame.Business.BusinessLayer.OnParentFormLoading()
   at MicroFour.StrataFrame.Business.BusinessLayer.RaiseParentFormLoadingEvent()
   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.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.SafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow)
   at System.Windows.Forms.Control.SetVisibleCore(Boolean value)
   at System.Windows.Forms.Form.SetVisibleCore(Boolean value)
   at MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.SetVisibleCore(Boolean value)
   at System.Windows.Forms.Control.set_Visible(Boolean value)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
   at System.Windows.Forms.Form.ShowDialog()
   at MicroFour.StrataFrame.AddIns.PartialClassBuilderDialog.ᜁ(Int32 A_0, String A_1)

 

 

 

 

By Ivan George Borges - 3/13/2008

Quando você instalou a versão 1.6.5, deixou que fosse feita a atualização do banco de dados do StrataFrame?
By Valdair Ziegler - 3/13/2008

Sim, deixei.
By Ivan George Borges - 3/13/2008

Estranho, Valdair...

Por favor, certifique-se que atualizou o banco de dados do SF no servidor para onde seu projeto está setado, pois a mensagem parece dizer que não encontra um campo de uma tabela do SF, que provavelmente é um campo novo criado nesta versão.

By Valdair Ziegler - 3/13/2008

Ok Ivan.

Vou refazer o processo e já te digo o que q deu....

Abraço.

By Valdair Ziegler - 3/13/2008

Oi Ivan.

Fiz uma restauração do SF direcionado para o banco de dados onde está meu projeto.

Eu consigo conectar e mapear normal. Assim como eu fiz após a atualização, mas ao customizar um campo qualquer a msg que postei acima é mostrada.  Quando tento compilar meu BO tenho o mesmo erro com o campo "piex_FieldDescription"....

At..

By Ivan George Borges - 3/13/2008

Ah, você está criando um custom field?

Dê uma olhada no Help file, Application Framework / Getting Started / Tutorials / Creating a WinForms App [VB] / Adding Custom Field Properties.

Dê uma olhada no tópico... já no final ele te demonstra como criar seu FieldPropertyDescriptor.

By Valdair Ziegler - 3/13/2008

Ao tentar customizar tenho essa mensagem......

BusinessLayerException
  An error occurred while refreshing the data from field 'DTEproject_item_exceptionsBO.piex_FieldDescription' to property 'Text' on control 'Textbox1.'  Are you missing FieldPropertyDescriptor for a custom property?
ArgumentException
  Column 'piex_FieldDescription' does not belong to table DTEproject_item_exceptions.

Source     : MicroFour StrataFrame Business

Stack Trace:
   at System.Data.DataRow.GetDataColumn(String columnName)
   at System.Data.DataRow.get_Item(String columnName)
   at MicroFour.StrataFrame.AddIns.DTEproject_item_exceptionsBO.ᜀ.GetValue(Object component)
   at System.Windows.Forms.BindToObject.GetValue()
   at System.Windows.Forms.Binding.PushData(Boolean force)
   at System.Windows.Forms.Binding.UpdateIsBinding()
   at System.Windows.Forms.Binding.CheckBinding()
   at System.Windows.Forms.Binding.SetListManager(BindingManagerBase bindingManagerBase)
   at System.Windows.Forms.ListManagerBindingsCollection.AddCore(Binding dataBinding)
   at System.Windows.Forms.BindingsCollection.Add(Binding binding)
   at System.Windows.Forms.BindingContext.UpdateBinding(BindingContext newBindingContext, Binding binding)
   at System.Windows.Forms.Binding.SetBindableComponent(IBindableComponent value)
   at System.Windows.Forms.ControlBindingsCollection.AddCore(Binding dataBinding)
   at System.Windows.Forms.ControlBindingsCollection.Add(Binding binding)
   at MicroFour.StrataFrame.Business.BusinessLayer.AddBinding(Control ControlToRefresh, String PropertyName, String FieldName)
   at MicroFour.StrataFrame.Business.BusinessLayer.RefreshControl(IBusinessBindable ControlToRefresh, Boolean DataPresent)
   at MicroFour.StrataFrame.Business.BusinessLayer.RefreshBoundControls()
   at MicroFour.StrataFrame.Business.BusinessLayer.raise_Navigated(NavigatedEventArgs e)
   at MicroFour.StrataFrame.Business.BusinessLayer.OnNavigated(NavigatedEventArgs e)
   at MicroFour.StrataFrame.Business.BusinessLayer.Navigate(BusinessNavigationDirection Direction, Int32 AbsoluteIndex, Object[] PrimaryKeyValues, Boolean AttemptToCheckRules, Boolean IsRefill)
   at MicroFour.StrataFrame.Business.BusinessLayer.Add(Boolean CheckSecurity)
   at MicroFour.StrataFrame.Business.BusinessLayer.Add()
   at MicroFour.StrataFrame.AddIns.DTEproject_item_exceptionsBO.GetOrCreateException(Int32 ProjectItemPK, String FieldName)
   at MicroFour.StrataFrame.AddIns.PartialClassBuilderExceptionDialog.ᜀ()
   at MicroFour.StrataFrame.Business.BusinessLayer.raise_ParentFormLoading()
   at MicroFour.StrataFrame.Business.BusinessLayer.OnParentFormLoading()
   at MicroFour.StrataFrame.Business.BusinessLayer.RaiseParentFormLoadingEvent()
   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.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.SafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow)
   at System.Windows.Forms.Control.SetVisibleCore(Boolean value)
   at System.Windows.Forms.Form.SetVisibleCore(Boolean value)
   at MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.SetVisibleCore(Boolean value)
   at System.Windows.Forms.Control.set_Visible(Boolean value)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
   at System.Windows.Forms.Form.ShowDialog()
   at MicroFour.StrataFrame.AddIns.PartialClassBuilderDialog.ᜁ(Int32 A_0, String A_1)

Ao compilar meu objeto tenho essa tela....

At....

By Trent L. Taylor - 3/13/2008

It looks as though you did not update the StrataFrame database with the last update.  A new field was added which allows you to override the description attribute.  Be sure to get the latest version of the 1.6.5 build and when you load it, be sure to let the StrataFrame data structures get updated.
By Ivan George Borges - 3/13/2008

Então, Valdair, ainda parece que você não atualizou o banco de dados do StrataFrame quando instalou a versão 1.6.5

Para se certificar de que está direcionando para o local certo, vá ao menu do StrataFrame no VisualStudio, escolha Database Connection. Veja bem, esta conexão não deveria nunca ser alterada. Se editar a conexão, irá ver onde esta o seu banco de dados do framework. Lembre-se, não estamos falando do banco de dados da sua aplicação.

Quando você instalou a versão 1.6.5, é para este SQL Server que deveria ter apontado.

By Valdair Ziegler - 3/13/2008

OK...  Mas ao instalar a nova versão eu não preciso de uma base só para a instalação do SF, correto..... Eu estou instalando o SF setando o banco de dados do projeto que estou desenvolvendo.  Obviamente o banco de dados que me refiro tem toda a estrutura criada que o SF utiliza, como projeto de mensagens e segurança.

Ao instalar o SF 1.6.5 o SF atualiza os campos que foram criados na última versão ou deve ser instalado em outro banco de dados e após importado para o banco da de dados onde está sendo desenvolvido o projeto.....  

Sei que é alguma configuração que estou me batendo por aqui.....

Abraço....

By Ivan George Borges - 3/13/2008

Você sempre teve um banco de dados só para o SF. O framework faz uso de um banco de dados que está no seu SQL Server, no qual guarda informações de todos os seus projetos. O nome do banco de dados é StrataFrame. Quando você cria sua aplicação, lógico, você cria o seu banco de dados, com o nome que lhe convém. Porém, o SF estará sempre fazendo uso do banco de dados StrataFrame durante o tempo de desenvolvimento. Quando você instala um update do SF, se houver alteração de alguma tabela do framework, como é o caso desta versão, você deve deixar que se faça o update do banco de dados, e para isto precisa apontar para o banco de dados StrataFrame originalmente instalado. Por isto que pedi para você conferir onde este banco de dados está instalado, ele não tem nada a ver com o banco de dados da sua aplicação.

Dá uma checada e me dá um toque.