Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
3 / 3 / 1
Регистрация: 08.02.2009
Сообщений: 15

DBE Проверка на наличие связанных данных при удалении записи

08.01.2012, 11:06. Показов 1483. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Создала с помощью DBE (Paradox 7) несколько таблиц, среди них есть связанные.

Сначала вопрос: как можно программно из главной таблицы перейти в подчинённую? Иначе говоря: допустим, у меня есть 20 таблиц, и всего одна из них подчинена главной. Использую компоненты DataSourse, TTable, DBGrid. Есть ли какое-то свойство у этих компонентов, чтобы обратиться напрямую к подчинённой таблице и с ней поработать? Гуглила, но безрезультатно.

А нужно это вот для чего.

Для связанных таблиц в настройках можно выбрать один из двух вариантов:
1) Prohibit - запрещено изменять значение ключевого поля головной таблицы или удалять из неё записи:
2) Cascade - при изменении значения ключевого поля головной таблицы изменится значение этого поля в подчинённой, а при удалении записи из головной таблицы будут удалены все записи в подчинённой таблице, в которой используется это значение.

Собственно говоря, хотелось бы получить что-то среднее - запретить удаление при наличии записей в подчинённой таблице (если же в подчинённой таблице записей с таким значением нет, то удалять можно). А при изменении ключевого поля в головной таблице менять его в подчинённой.

В идеале, хотелось бы оставить опцию Cascade, но при попытке удалить запись проверять программно, используется ли её ключ в подчинённой таблице.

Буду очень благодарна за ответы!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.01.2012, 11:06
Ответы с готовыми решениями:

Дублирование данных в запросе: при удалении одной записи удаляются многие
Здравствуйте уважаемые! Такая проблема у меня, сделал простой запрос из двух таблиц. Поставил фильтры для удобства. И тут...

Ошибка при удалении записи из таблицы: "Источник данных изменил или удалил значение ключа в хранилище данных"
Помогите разобраться! При удаление записи из таблицы возникает ошибка...

Выдаёт ошибку при удалении записей из связанных таблиц. Что неправильно?
Скрин с ошибкой во вложении.А вот код: 1 процедура из формы, вызывающей форму, где выбираются параметры удаляемой записи: Код: ...

1
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
10.01.2012, 13:41
Все эти ограничения в парадоксе отсутствуют (вернее, они как бы есть, но это лишь имитация - на самом деле таблицы просто ломаются (corrupted) в резултате каскадных удалений. Внешние же ограничения..
В общем, парадокс - это на 99% "клиентская" логика, т.е. все надо реализовывать программно.
Для нормальной надежной мобильной системы, поддерживающей все, о чем у Вас написано в сабже следует выбирать SQL-сервер, которых сегодня в избытке, в т.ч. бесплатные и "легкие"

Что же касается "Prohibit". Для парадокса НЕТ ЗАЩИТЫ от программного изменения связующего ключа в детал-записи - только на уровне алгоритма, т.е. "ручками". Для автоматического "попадания" из мастера в детал используйте связку Master-Detail, прекрасно описанную в хэлпе BDE-компонент
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.01.2012, 13:41
Помогаю со студенческими работами здесь

Проверка на наличие записи в БД
Добрый день! У меня, в программе имеется таблица БД, я методом Insert, через DBEdit добавляю записи в эту таблицу. Вопрос следующий, как...

Проверка на наличие записи!
Всем привет....сломал голову, В Форме Access имеется поле поиска...создал кнопку для печати, и не могу сделать так чтоб если поле поиска не...

Проверка на наличие записи в БД
По нажатию на изображение получаю его id(через jquery),по этому id проверяю в таблице у поля available(1 или 0). Как если значение будет 0...

Проверка на наличие существующей записи в БД
Сделал проверку на наличие записи в БД при добавлении новой записи: public bool CheckUserAdd(string name, string email) ...

Проверка на наличие записи в файле
Доброго времени суток, с пхп почти не знаком, эксперементирую, и столкнулся с проблемой. Требуется проверить, чтобы поле в форме было не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор под наименованию группы (на. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru