Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Очень надеюсь на помощь. У меня 2 класса связаны отношение Parent-Children. А проблема в том, что связанные объекты ни потомка ни родителя я не могу удалить!!! Как это можно сделать??? Вот так я пытаюсь удалять: <input name="Del" type="Button" value="Удалить" OnClick="#server(..Del(#(%request.Get("ID"))#))#"> <script language="Cache" Method="Del" arguments="ID:%Integer"> set cc=##class(SAVCW.GarTalon).%DeleteID(ID) </script> НО НИЧЕГО НЕ ПОЛУЧАЕТСЯ. Причем если у родителя нет потомков, то его получается удалить(как я понял так и должно быть, но как же удалять потомков тогда???) Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2008, 14:33 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
Что-то тут и термины наследования в ход пошли... Так у вас там два класса (А и Б) и связь между ними "один ко многим"? Если так то, для удаления экземпляра из А нужно удалить все связаные с ним экземпляры в Б. Сделайте тестовый пример... Попробуйте все это проделать там... Если не получится выкладывайте классы тут - посмотрим. ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2008, 08:55 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
Вот мои классы Pokupatel(Parent) и GarTalon(Children). Я их связал отношением Parent-Children. Экземпляры не удаляются ни из одного из них. Что нужно делать? /// Информация о покупателе Class SAVCW.Pokupatel Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { /// Адрес покупателя Property Address As %String(MAXLEN = 200); /// Дата рождения Property DR As %Date; /// ФИО покупателя Property FIO As %String(MAXLEN = 70) [ Required ]; /// отношение гарантийный талон "предок-потомок" Relationship GarTal As SAVCW.GarTalon [ Cardinality = children, Inverse = KodPok ]; /// Информация о гарантийных талонах Class SAVCW.GarTalon Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { /// Дата покупки товара Property DatePok As %Date [ Required ]; /// Отношение покупатель Relationship KodPok As SAVCW.Pokupatel [ Cardinality = parent, Inverse = GarTal ]; /// Отношение товар Relationship KodTov As SAVCW.Tovar [ Cardinality = one, Inverse = GarTal ]; Relationship ServList As SAVCW.ServiceList [ Cardinality = many, Inverse = KodGT ]; Index KodTovIndex On KodTov; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2008, 15:52 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
AndSv1Вот мои классы Pokupatel(Parent) и GarTalon(Children). В вашем примере участвуют еще классы: SAVCW.Tovar SAVCW.ServiceList Т.ч. пример явно не тестовый. А вам нужно сделать тестовый... Используйте только два класса. А что вы хотите получить от связи Parent-Children? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2008, 16:35 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
А какая разница сколько у меня классов?? В отношении участвуют 2 класса Pokupatel и GarTalon и мне нужно сделать удаление экземпляров класса GarTalon! Но ничего не получается удалить тем способом, что я в начале привел! ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2008, 16:54 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
А при отношении один ко многим всё работает!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2008, 16:55 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
Так что вы хотите получить от связи Parent-Children? ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2008, 08:21 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
AndSv1А при отношении один ко многим всё работает!! Похоже, что вы пытались удалить последнего Child в этом Parent. Тут все дело в специфике отношения Parent-Child. Это отношение называется зависимым (dependent). Если вы создали Parent и он пока без Child - то может спокойно существовать и быть удален сам по себе. Child можно удалять по одному, кроме последнего в Parent. Если у Parent есть Child, то удалить его можно только вместе с последним Child . Сделать это можно если открыть транзакцию, в которой удалить и Child и Parent. ts ##class(Parent).%DeleteId(pid) ##class(Child).%DeleteId(chid) tc где pid - ид-р Parent, а chid - ид-р последнего Child ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2008, 14:39 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
Че-то непонятно, почему нельзя удалить последний child. И при чем тут транзакции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 05:15 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.Че-то непонятно, почему нельзя удалить последний child. Таков закон. Блок А.Н.И при чем тут транзакции? Именно она позволяет это сделать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 08:44 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
Всю жизнь удалял либо парента - либо всех детишек, скопом либо выборочно... Про прикол с последним чилдреном - первый раз слышу ... Автору темы - а у вас какая структура хранения ? дети - это "подтаблица" парента ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 08:59 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
PtnВсю жизнь удалял либо парента - либо всех детишек, скопом либо выборочно... Про прикол с последним чилдреном - первый раз слышу ... Автору темы - а у вас какая структура хранения ? дети - это "подтаблица" парента ? Насчет последнего чилдрена это конечно шутка... но удалять чилдренов, не удаляя при этом Parent не получается . Это касается именно отношения Parent-Child ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 12:48 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
Что значить "не удаляя парента" ??? Вот есть реестровый документ - Ведомость (парент) - у него кучка Строк Ведомости (чилдрены) Код: plaintext 1. 2. 3. 4. 5. 6. Разве с этим какие либо проблемы ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 13:42 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
krvsaТаков закон. Нету таких законов и вообще в программировании алгоритмы, а не законы. А если в алгоритме вдруг откуда не возьмись появляются странные ограничения, это вызывает вопросы. Мне все таки кажется, что такого ограничения нет. krvsa И при чем тут транзакции? Именно она позволяет это сделать... Опять же как мне наивно казалось до сих пор, транзакция в каше сама по себе не изменяет алгоритм и работу команд, а всего лишь делает отметку в журнале, чтобы можно было ее откатить. Я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 13:52 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.Я не прав? Я с такими связями дело не имел... Т.ч. я "сливаюсь"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 13:54 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
э-э-э ... а вы уверены что проблема в parent-child ? У Вас чуть ниже в детишках еще прописано : Код: plaintext 1. 2. 3. 4. Вот с one-many у меня отдаленно схожие проблемы были ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 14:08 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
У меня личный интерес... Для какой цели вообще можно использовать отношение parent-child? Вчем разница с one-many? ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2008, 13:37 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
Альтернатива массивам - имеющих проблемы с размером коллекции. То же самое зависимое отношение, возможность создавать свои собственные индексы и триггеры - плюс легкость обработки в прямом доступе, ибо структура хранения вполне себе понятная - плюс автоматическое убиение детишек при удалении предка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2008, 20:40 |
|
||
|
Удаление объектов при отношении Родитель-Потомок
|
|||
|---|---|---|---|
|
#18+
PtnАльтернатива массивам - имеющих проблемы с размером коллекции. Благо я такое не использовал никогда... Ptnплюс автоматическое убиение детишек при удалении предка. Ясно... Но я сторонник связи "один ко многим"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 10:57 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=35295783&tid=1558903]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 397ms |

| 0 / 0 |
