21.04.2004, 19:39 | #1 |
Участник
|
Cascade + Resrict = ?
Добрый день
Пожалуйста, разъясните (если можно, на примере), чем Cascade отличается от Cascade+Resctrict. Из того, что написано в доке, я не смог найти отличий. Думал, что в SQL Server BOL есть, но в SQL Server только Restrict и Cascade по отдельности. |
|
21.04.2004, 20:03 | #2 |
Участник
|
в случае Cascade связанные записи будут удалены молча, в случае Cascade+Resricted аксапта попросит подтвердить их удаление
|
|
21.04.2004, 20:57 | #3 |
Участник
|
Большое спасибо за разъяснение.
|
|
23.04.2004, 11:49 | #4 |
Administrator
|
DMA, это не так. Для стандартного интерфейса (без перекрытия метода validateDelete()) Cascade + Restricted равносильно Restricted.
Вообще, разные виды DeleteAction проявляются в различном поведении методов validateDelete и delete.
Если запись удаляется из формы, и методы validateDelete и delete у DataSource и у таблицы не переопределены, то Cascade + Restricted будет равносильно Restricted, так как ядро всегда сначала вызывает метод validateDelete, и если он возвращает false, выдается предупреждение в infolog и метод delete не вызывается.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
|
За это сообщение автора поблагодарили: d_alexe (1). |
23.04.2004, 12:13 | #5 |
Участник
|
Согласен, Максим. Погорячился я.
Cascade+Restricted работает только совместно с обработкой validateDelete(), где собственно обычно и запрашивается подтверждение намерений удалить запись основной таблицы вместе со связанными. |
|
23.04.2004, 19:42 | #6 |
Участник
|
В случае если удаление вызывется из пользовательского интерфейса (в том числе обозревателя таблиц), то работает как Restrct, если удаление вызывается из методов, то работает как Cascade.
|
|