Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > DBE Проверка на наличие связанных данных при удале


Автор: Ash313374 8.1.2012, 10:13
Добрый день!

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

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

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

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

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

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

 Буду очень благодарна за ответы!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)