disaster |
Отправлено: 28.02.2006, 10:56 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
Доброго всем времени суток!
БД Paradox
Суть проблемы следующая: есть две таблицы пользователи и платежи(связь один ко многим).
Имеется между ними контроль целостности на уровне ссылок (referential integrity) с update rule — cascade.
В проекте работаю с ними через TQuery (RequestLive=true). Через DBNavigator пытаюсь удалить запись из главной таблицы с которой связаны несколько записей в дочерней таблице. Выдает ошибку — "Master has detail records. Can not delete or modify". Что происходит ясно. Но как это убрать, т.е. чтобы при удалении записи из головной удались связанные поля в дочерней??? |
|
disaster |
Отправлено: 01.03.2006, 09:46 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
Все что нашел через поисковик это то что люди советуют забить на Paradox и на его глючное каскадное удаление :-( |
|
olegenty |
Отправлено: 01.03.2006, 09:57 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
собственно, я ничего не ответил именно по этой причине. единственно верным представляется именно предложенное тебе решение — забить на Paradox, как трижды по пять раз устаревший, и перейти на "лёгкую" SQL-серверную СУБД, типа Firebird и др.
|
|
avc* |
Отправлено: 01.03.2006, 10:23 |
|
Не зарегистрирован
|
Забить это совершенно правильно, но все таки почему не дать два запроса подряд (FK-PK то известен)? Или лениво? |
|
olegenty |
Отправлено: 01.03.2006, 10:39 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
ну так тогда ж фишка Master-Detail становится бесполезно-нафиг-ненужной
|
|
disaster |
Отправлено: 01.03.2006, 10:51 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
Короче я так понял все функии добавления/удаления/редактирования лучше писать самому в виде sql, чем полагаться на всякие там DBNavigator
а также лучше перейти на "лёгкую" SQL-серверную СУБД, типа Firebird и др
Отредактировано disaster — 01/03/2006, 10:58 |
|
olegenty |
Отправлено: 01.03.2006, 10:58 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
угу. и в твоём случае использовать для этого TQuery в связке TUpdateSQL
|
|