Вниз
Скачать: CL | DM;

изменить все поля в таблице при изменении такихже полей в др. таб   Найти похожие ветки 

← →
Саша ©   (2002-04-27 10:37) [0]

Подскажите пожалуйста, как решит такую задачу:
Есть таблица в ней одно поле выбирается из другой таблицы
(справочник), как сделать так чтобы при изменении поля в справочнике изменялись все поля с этим значением, а при удалении из справочника, если есть такое значение в главной таблице, то выводить сообшени что удалить нельзя. Я не чего умнее пойска (locate или ченибудь в этом роде) и изменения предумать немогу. Помогите решить эту проблемку по умному. Заранее благодарен.


← →
Johnmen ©   (2002-04-27 10:41) [1]

Не приведен тип БД.


← →
Саша ©   (2002-04-27 11:02) [2]

Dbase


← →
Johnmen ©   (2002-04-27 11:16) [3]

Если правильно понял, то :
1.связывание полей надо делать по ключевому полю в справочнике и ссылочному в основной табл., тогда будет <...при изменении поля в справочнике изменялись все поля с этим значением...>
2.при удалении из справочника проверять, имеются ли ссылки на удаляемую запись в осн.табл., используя соотв.запрос


← →
Desdechado ©   (2002-04-28 15:36) [4]

Для dBase ссылочная целостность реализуется именно таким ручным поиском :((


← →
roottim   (2002-04-28 16:18) [5]

+
т.к реализацию триггеров сделать нельзя и по утверждению Desdechado © (28.04.02 15:36) ссылочную целостность не поддерживает -
их подобие можно реализовать на евенсы dataset-а
AfterPost BeforDelete
пример отбалды.. незнаю на чем все это пишется но пр так!
t1 гл t2 спр-к
q1 tquery
procedure TForm1.t2AfterPost(DataSet: TDataSet);
begin
q1.sql.text:="update t1 set idT2 = :p1 where idT2 = :p2";
q1.ParamByName("p1").Value := t2.FieldByName("id").NewValue;
q1.ParamByName("p2").Value := t2.FieldByName("id").OldValue;
q1.ExecSql;
end;


и на удаление в том же духе
сам не проверял... но идея такова!
Locate конечно использовать ненадо..все на уровне запросов



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
4-73443
EAlexander
2002-03-21 16:58
2002.05.23
Синхронизация времени


3-73071
Дремучий
2002-04-25 12:25
2002.05.23
Типчики... Создание BLOB поля в Парадоксе через SQL ?


1-73219
shane54
2002-05-14 17:38
2002.05.23
Как проверить, есть ли среди 10 чисел повторяющиеся?


1-73289
Александр Арсентьев
2002-05-11 14:41
2002.05.23
Методы оценки стоимости программного


6-73341
kvcomp
2002-03-13 23:46
2002.05.23
Соединение с Интернет.




   Наверх