Обновление №7 для VOGBIT v.1.1.37841 - В производственном модуле внесен ряд изменений, направленных на упрощение работы с программой на «максимальном» уровне. В том числе: изменён порядок вывода на экран информации о количестве (запланированных/сданных деталей) – стало более наглядно и удобно

Заказная спецификация

- Практические приемы работы - Старые разделы форума
Страницы: 1
Заказная спецификация
 
Не удаляется заказная спецификация, пишет ошибку..Пробовал через коллекцию компонентов и через очистку заказов...Внутри спецификации все чисто..
Сообщение:
  Объект либо не существует, либо содержит файлы.

Отправитель:
  Csdn.Vogbit.Data.ComponentCollections

Исключение:
  Csdn.Vogbit.Data.ForeignKeyViolationException

Источник:
  Csdn.Vogbit.Data

Версия 1.1.37841 сборка 171

Внутреннее исключение:: Конфликт инструкции DELETE с ограничением REFERENCE "FK_Files_Owner". Конфликт произошел в базе данных "dekorwork", таблица "General.Files", column 'OwnerID'.<KeyErr><ErrCode:6001FFFF>
<ErrNumber:547>
<ErrSeverity:16>
<ErrState:0>
<ErrProcedure:Called from [General].[Objects.Delete]: >
<ErrLine:41><KeyErr><ErrCode:6001FFFF>
<ErrNumber:50000>
<ErrSeverity:16>
<ErrState:1>
<ErrProcedure:Called from [General].[ComponentCollections.Delete]: >
<ErrLine:50>
Ошибка преобразования значения varchar "except" в тип данных int.


Список вызовов:
  в Csdn.Vogbit.Data.SqlExceptionBuilder.ThrowError(Object sender, SqlException ex, String database)
  в Csdn.Vogbit.Data.DataObjectList.TryToApplyInternal(Boolean useTransaction)
  в Csdn.Vogbit.Data.DataObjectList.Apply(Boolean raiseEvent)
  в Csdn.Vogbit.Data.BizObject.DeleteInternal()
  в Csdn.Vogbit.Data.DataObject.DeleteInternal()
  в Csdn.Vogbit.Data.BaseComponentCollection.DeleteInternal()
  в Csdn.Vogbit.Data.BizObject.Delete()
  в Csdn.Vogbit.Forms.DataForm.DeleteSelected()
  в Csdn.Vogbit.Forms.DataForm.DeleteClick()
  в Csdn.Vogbit.Forms.DataForm.DeleteCommand_Execute(Object sender, ActionExecuteEventArgs e)
  в Csdn.Vogbit.Forms.Action.Execute(Component component)
  в Csdn.Vogbit.Forms.Action.ClickHandler(Object sender, EventArgs e)
  в Csdn.Vogbit.Forms.ActionXtraBarItemLink.ItemHandler.EventClick(Object sender, ItemClickEventArgs e)
  в DevExpress.XtraBars.ItemClickEventHandler.Invoke(Object sender, ItemClickEventArgs e)
  в DevExpress.XtraBars.BarItem.OnClick(BarItemLink link)
  в DevExpress.XtraBars.BarButtonItem.OnClick(BarItemLink link)
  в DevExpress.XtraBars.BarItemLink.OnLinkClick()
  в DevExpress.XtraBars.BarButtonItemLink.OnLinkClick()
  в DevExpress.XtraBars.BarItemLink.OnLinkAction(BarLinkAction action, Object actionArgs)
  в DevExpress.XtraBars.BarButtonItemLink.OnLinkAction(BarLinkAction action, Object actionArgs)
  в DevExpress.XtraBars.BarItemLink.OnLinkActionCore(BarLinkAction action, Object actionArgs)
  в DevExpress.XtraBars.ViewInfo.BarSelectionInfo.ClickLink(BarItemLink link)
  в DevExpress.XtraBars.ViewInfo.BarSelectionInfo.UnPressLink(BarItemLink link)
  в DevExpress.XtraBars.Controls.CustomLinksControl.OnMouseUp(MouseEventArgs e)
  в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
  в System.Windows.Forms.Control.WndProc(Message& m)
  в DevExpress.XtraBars.Controls.DockedBarControl.WndProc(Message& msg)
  в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
  в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
  в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Inner Exception ---------------

Сообщение:
  Конфликт инструкции DELETE с ограничением REFERENCE "FK_Files_Owner". Конфликт произошел в базе данных "dekorwork", таблица "General.Files", column 'OwnerID'.<KeyErr><ErrCode:6001FFFF>
<ErrNumber:547>
<ErrSeverity:16>
<ErrState:0>
<ErrProcedure:Called from [General].[Objects.Delete]: >
<ErrLine:41><KeyErr><ErrCode:6001FFFF>
<ErrNumber:50000>
<ErrSeverity:16>
<ErrState:1>
<ErrProcedure:Called from [General].[ComponentCollections.Delete]: >
<ErrLine:50>
Ошибка преобразования значения varchar "except" в тип данных int.

Исключение:
  System.Data.SqlClient.SqlException

Источник:
  .Net SqlClient Data Provider

Список вызовов:
  в System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
  в System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
  в System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)
  в System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping)
  в System.Data.Common.DbDataAdapter.Update(DataTable dataTable)
  в Csdn.Vogbit.Data.DataAdapter.Update(DataTable dataTable)
  в Csdn.Vogbit.Data.DataAdapter.UpdateDataTable(DataTable dataTable)
  в Csdn.Vogbit.Data.DataObjectList.ApplyInternal()
  в Csdn.Vogbit.Data.DataObjectList.TryToApplyInternal(Boolean useTransaction)
 
Вы, когда работали с окном "Состав" с этой спецификацией, использовали функцию прикрепления файлов к деталям, которые в эту спецификацию вставляли.
Соответственно, эта спецификация выступила в роли "контейнера", где эти файлы сохранены.

Подробнее можно почитать здесь.

Чтобы убедиться, можно встать на эту "спецификацию" и открыть зависимое окно "файлы" (рис.1)

Потом вы детали (строчки) из спецификации удалили, но файлы остались. Как и связь этих файлов с деталями, к которым вы их привязали, добавляя.
Соответственно, если хотите полностью удалить коллекцию (спецификацию), то нужно удалить связи деталей (в справочнике "номенклатура") с файлами, которые в ней лежат, и сами файлы.

Делать можно по разному. Проще всего, наверное, так:
Найти в "Номенклатуре" детали, к которым вы, работая с этой спецификацией, добавляли файлы.
Для каждой такой детали открыть окно "эскизы". Там будет файл. Удалить его. При таком действии удаляется и связь детали с файлом, и сам файл из базы, если он больше нигде не используется.
Может ругнуться на "не могу удалить активный файл". Не обращайте внимание. Не буду здесь подробности расписывать, чтобы не загружать Вас лишней информацией.

Таким образом, пройдя так по деталям и удалив в окне "эскизы" связанные с ними файлы, вы по идее, и удалите их из своей "спецификации". Максимум, один останется (если ругнётся, как было написано выше - зависит от того, в какой последовательности удалять). Его (если останется), через окно "файлы" (рис.1) можно будет легко удалить, т.к. он ни с кем уже не связан будет.

Ну и потом, соответственно, "спецификация" удалится.

P.S. Другой вариант: найти детали (в "номенклатуре"), открыть зависимое окно "связанные файлы". Удалить связь с файлом. Так для всех.
Потом открыть для коллекции (спецификации) зависимое окно "файлы" (рис.1). И там всё удалить (файлы уже ни с кем связаны не будут и удалятся).
1.png (142.92 КБ)
 
одна удалилась..
по другой пишет очередную ошибку

Сообщение:
  Номенклатурная позиция не существует, либо содержит коллекции компонентов.

Отправитель:
  Csdn.Vogbit.Data.Nomenclature

Исключение:
  Csdn.Vogbit.Data.ForeignKeyViolationException

Источник:
  Csdn.Vogbit.Data

Версия 1.1.37841 сборка 171

Внутреннее исключение:: Конфликт инструкции DELETE с ограничением REFERENCE "FK_Collections_Nomenclature". Конфликт произошел в базе данных "dekorwork", таблица "General.ComponentCollections", column 'OwnerID'.<KeyErr><ErrCode:6001FFFF>
<ErrNumber:547>
<ErrSeverity:16>
<ErrState:0>
<ErrProcedure:Called from [General].[Nomenclature.Delete]: >
<ErrLine:42>
Ошибка преобразования значения varchar "except" в тип данных int.


Список вызовов:
  в Csdn.Vogbit.Data.SqlExceptionBuilder.ThrowError(Object sender, SqlException ex, String database)
  в Csdn.Vogbit.Data.DataObjectList.TryToApplyInternal(Boolean useTransaction)
  в Csdn.Vogbit.Data.DataObjectList.Apply(Boolean raiseEvent)
  в Csdn.Vogbit.Data.BizObject.DeleteInternal()
  в Csdn.Vogbit.Data.DataObject.DeleteInternal()
  в Csdn.Vogbit.Data.BizObject.Delete()
  в Csdn.Vogbit.Forms.DataForm.DeleteSelected()
  в Csdn.Vogbit.Forms.DataForm.DeleteClick()
  в Csdn.Vogbit.Forms.DataForm.DeleteCommand_Execute(Object sender, ActionExecuteEventArgs e)
  в Csdn.Vogbit.Forms.Action.Execute(Component component)
  в Csdn.Vogbit.Forms.Action.ClickHandler(Object sender, EventArgs e)
  в Csdn.Vogbit.Forms.ActionXtraBarItemLink.ItemHandler.EventClick(Object sender, ItemClickEventArgs e)
  в DevExpress.XtraBars.ItemClickEventHandler.Invoke(Object sender, ItemClickEventArgs e)
  в DevExpress.XtraBars.BarItem.OnClick(BarItemLink link)
  в DevExpress.XtraBars.BarButtonItem.OnClick(BarItemLink link)
  в DevExpress.XtraBars.BarItemLink.OnLinkClick()
  в DevExpress.XtraBars.BarButtonItemLink.OnLinkClick()
  в DevExpress.XtraBars.BarItemLink.OnLinkAction(BarLinkAction action, Object actionArgs)
  в DevExpress.XtraBars.BarButtonItemLink.OnLinkAction(BarLinkAction action, Object actionArgs)
  в DevExpress.XtraBars.BarItemLink.OnLinkActionCore(BarLinkAction action, Object actionArgs)
  в DevExpress.XtraBars.ViewInfo.BarSelectionInfo.ClickLink(BarItemLink link)
  в DevExpress.XtraBars.ViewInfo.BarSelectionInfo.UnPressLink(BarItemLink link)
  в DevExpress.XtraBars.Controls.CustomLinksControl.OnMouseUp(MouseEventArgs e)
  в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
  в System.Windows.Forms.Control.WndProc(Message& m)
  в DevExpress.XtraBars.Controls.DockedBarControl.WndProc(Message& msg)
  в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
  в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
  в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Inner Exception ---------------

Сообщение:
  Конфликт инструкции DELETE с ограничением REFERENCE "FK_Collections_Nomenclature". Конфликт произошел в базе данных "dekorwork", таблица "General.ComponentCollections", column 'OwnerID'.<KeyErr><ErrCode:6001FFFF>
<ErrNumber:547>
<ErrSeverity:16>
<ErrState:0>
<ErrProcedure:Called from [General].[Nomenclature.Delete]: >
<ErrLine:42>
Ошибка преобразования значения varchar "except" в тип данных int.

Исключение:
  System.Data.SqlClient.SqlException

Источник:
  .Net SqlClient Data Provider

Список вызовов:
  в System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
  в System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
  в System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)
  в System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping)
  в System.Data.Common.DbDataAdapter.Update(DataTable dataTable)
  в Csdn.Vogbit.Data.DataAdapter.Update(DataTable dataTable)
  в Csdn.Vogbit.Data.DataAdapter.UpdateDataTable(DataTable dataTable)
  в Csdn.Vogbit.Data.DataObjectList.ApplyInternal()
  в Csdn.Vogbit.Data.DataObjectList.TryToApplyInternal(Boolean useTransaction)
 
удалилась только при удалении конструкторской документации..
другой вариант возможен?
 
Цитата
Евгений пишет:
по другой пишет очередную ошибку
По тексту, как если вы нажимаете "удалить". стоя на номенклатурной позиции, у которой существует спецификация, техпроцесс или что-то подобное.

Это уже из другой оперы совсем.
Откройте зависимое окно "коллекции компонентов" для этой позиции. Посмотрите, что там есть. Удалите.

P.S.
Ввкладывать текст сообщения полностью не нужно.
Мы попросим, если он понадобится.
Более информативно, если вы сначала выложите скриншот своего экрана с сообщением для начала. Хотя бы будет понятно, в каком окне вы что нажимаете...
 
Цитата
Евгений пишет:
удалилась только при удалении конструкторской документации..
другой вариант возможен?
Какой конструкторской документации?
Какой другой вариант?

Если вы о том, что "сборочная единица" не удаляется из "номенклатуры", пока не удалишь созданную на неё спецификацию, то это нормально. Так и должно быть.

P.S.
Совет:
На этапе изучения/тренировок/освоения используйте тестовую базу для обучения и экспериментов.
Сделать можно методом создания копии с рабочей базы, назвав её другим именем.
В тестовой базе, если лень, можно не париться и вообще ничего не удалять. Если "захламится" сильно - удалить одной кнопкой всю тестовую базу целиком, сделать новую.
Страницы: 1
Сейчас на форуме (гостей: 73)
Всего зарегистрированных пользователей: 2584
Приняло участие в обсуждении: 313
Всего тем: 811
Всего сообщений: 6064

×
Вход на сайт