AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: База знаний и проекты
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.12.2001, 03:27   #1  
sguryev is offline
sguryev
Участник
 
24 / 13 (1) ++
Регистрация: 07.12.2001
Адрес: Сергиев Посад
Post Исследование - Как работают разные типы Delete Actions.
Существует 4 типа delete actions:
None, Cascade, Restricted, Cascade+Restricted
Из Руководства разработчика Axapta не совсем понятно, как они работают особенно Cascade+Restricted.

Как работают эти режимы я проверил на следующих таблицах:
Три таблицы:
DepartmentTable
ManagerID -> EmployeeTable.EmployeeID
DepartmentID
DepartmentName

EmployeeTable
CompanyID -> CompanyTable.ID
EmployeID
EmployeeName
DepartmentID -> DepartmentTable.DepartmentID
Delete Action
DepartmentTable
CompanyTable
ID
Name
Delete Action
EmployeeTable

Т.е. есть таблица компаний (имя компании, идентификатор компании), есть таблица
сотрудников различных компаний (имя сотрудника, идентификатор компании в
оторой он работает, идентификатор отдела к которому он закреплен и идентификатор
отрудника), и есть таблица отделов компаний (название отдела, идентификатор
отдела и идентификатор сотрудника его возглавляющего). Дальнейшее усложнение
схемы не имеет смысла для данного исследования.

1) EmployeeTable
Delete Action
DepartmentTable = None
CompanyTable
Delete Action
EmployeeTable = None
Результат: удаление записи в любой из таблиц никак не влияет на записи других
таблиц.

2) EmployeeTable
Delete Action
DepartmentTable = None
CompanyTable
Delete Action
EmployeeTable = Cascade
Результат:
- удаление записи в EmployeeTable не влияет на другие таблицы.
- удаление записи в CompanyTable влечет удаление всех связанных записей в
EmployeeTable, DepartmentTable без изменений.
__________________
Гурьев Сергей
Старый 10.05.2002, 15:46   #2  
RAks is offline
RAks
Участник
 
11 / 10 (1) +
Регистрация: 10.05.2002
Привет.
Если установить DA = Restricted, то при выполнении метода
<курсор главной таблицы>.validateDelete() будет возвращено значение false,
а при выполнении <курсор главной таблицы>.delete() будет удалена запись только главной таблицы.

Если установить DA = Cascade + Restricted, то при выполнении метода
<курсор главной таблицы>.validateDelete() будет возвращено значение false,
а при выполнении <курсор главной таблицы>.delete() будет удалена запись главной таблицы и все связанные записи подчиненной таблицы.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
gatesasbait: Table caching and record delete()/update()/next Blog bot DAX Blogs 3 24.04.2008 22:55
C# and AX Development: How to delete AOT objects (AX/Axapta) Blog bot DAX Blogs 0 13.12.2007 19:50
jerry-dynamics: How can you make sure that the end user can not delete a record in one table if there are related records in another table? Blog bot DAX Blogs 0 16.06.2007 11:20
Различные типы связей (LinkType) для FormDataSource Maxim Gorbunov DAX: База знаний и проекты 1 16.05.2004 13:20
Отображение связных таблиц. Сплиттер. Автоувеличение индекса. Delete Action. sguryev DAX: База знаний и проекты 0 14.12.2001 06:15

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:23.