Суббота, 04 Май 2024, 10:15
Uchi.ucoz.ru
Меню сайта
Форма входа

Категории раздела
Высшая математика [11]
Экономическая социология [95]
Основы Менеджмента [64]
Бухгалтерский учёт [157]
Философия [163]
Мировая Экономика [603]
Бизнес планирование [29]
Финансирование и кредитование инвест [105]
Ценообразование [46]
Гражданское право [196]
Права Человека [173]
Основы Маркетинга [207]
Основы энергосбережения [55]
Информатика [0]
Экология и устойчивое развитие [0]
Физика для студентов [0]
Основы права [0]
Политология [0]
Не стандартные примеры на Delphi [169]
Примеры на Delphi7 [108]
Алгоритмы [94]
API [110]
Pascal [152]
Базы Данных [6]
Новости
Чего не хватает сайту?
500
Статистика
Зарегистрировано на сайте:
Всего: 51635


Онлайн всего: 7
Гостей: 7
Пользователей: 0
Яндекс.Метрика
Рейтинг@Mail.ru

Каталог статей


Главная » Статьи » Студентам » Не стандартные примеры на Delphi

Каскадированное удаление с проверкой целостности Paradox
Таблицы Paradox имеют характеристику проверки целостности (Referential
Integrity). Данная характеристика предотвращает добавление записей в дочернюю
таблицу, для которых нет соответствующих записей в родительской таблице. Это
также изменяет ключевое(ые) поле(я) в дочерней таблице при изменениях в
соответствующем(их) ключевом(ых) поле(ях) родительской таблицы (обычно это
называют каскадированным обновлением). Эти события происходят автоматически, и
не требуют никакого вмешательства со стороны Delphi-приложений, использующих эти
таблицы. Тем не менее, характеристика проверки целостности таблиц Paradox не
работает с каскадированным удалением. То есть, Delphi не позволит вам удалять
записи в родительской таблице при наличии существующих записей в дочерней
таблице. Это могут сделать только дочерние записи "без родителей", обходя
проверку целостности. При попытке удаления такой родительской записи, Delphi
сгенерит объект исключительной ситуации.

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

Удаление записи таблицы осуществляется вызовом метода Delete компонента
TTable, который удаляет текущую запись в связанной с компонентом таблице.
Прерывание процесса удаления для выполнения других операций связано с созданием
обработчика события BeforeDelete компонента TTable. Любые действия в обработчике
события BeforeDelete произойдут прежде, чем приложением будет послана команда
Borland Database Engine (BDE) на физическое удаление записи из табличного файла.

Для того, чтобы обработать удаление одной или более дочерних записей, в
обработчике события BeforeDelete необходимо организовать цикл, осуществляющий
вызов метода Delete компонента TTable для всех записей дочерней таблицы. Цикл
основан на условии, что указатель на запись в таблице не позиционируется на
конец набора данных, как указано методом Eof компонента TTable. Это также
предполагает, что удаляются все дочерние записи, соответствующие родительским
записям: если нет соответствующих записей, указатель на запись устанавливается
на конец набора данных, условие выполнения цикла равно False, и метод Delete в
теле цикла никогда не выполняется.

procedure TForm1.Table1BeforeDelete(DataSet:
TDataset);
begin
with Table2 do begin
DisableControls;
First;
while not Eof do
Delete;
EnableControls;
end;
end;
Категория: Не стандартные примеры на Delphi | Добавил: Lerka (22 Ноя 2012)
Просмотров: 430 | Рейтинг: 1.0/ 6 Оштрафовать | Жаловаться на материал
Похожие материалы
Всего комментариев: 0

Для блога (HTML)


Для форума (BB-Code)


Прямая ссылка

Профиль
Суббота
04 Май 2024
10:15


Вы из группы: Гости
Вы уже дней на сайте
У вас: непрочитанных сообщений
Добавить статью
Прочитать сообщения
Регистрация
Вход
Улучшенный поиск
Поиск по сайту Поиск по всему интернету
Наши партнеры
Интересное
Популярное статьи
Портфолио ученика начальной школы
УХОД ЗА ВОЛОСАМИ ОЧЕНЬ ПРОСТ — ХОЧУ Я ЭТИМ ПОДЕЛИТ...
Диктанты 2 класс
Детство Л.Н. Толстого
Библиографический обзор литературы о музыке
Авторская программа элективного курса "Практи...
Контрольная работа по теме «Углеводороды»
Поиск
Главная страница
Используются технологии uCoz