Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.23;
Скачать: 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 вся ветка

Текущий архив: 2002.05.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
1-73202
Darkwin
2002-05-14 15:36
2002.05.23
Dos приложение


1-73247
Юляша
2002-05-09 17:39
2002.05.23
Настройка компонента TrxSplitter


3-73089
@andrew
2002-04-26 16:29
2002.05.23
Привет Всем!!! Можно ли заблокировать работу триггеров в SQL?


14-73393
ATLANTIDO
2002-04-16 00:18
2002.05.23
SDK


1-73249
nobody2002
2002-05-10 15:49
2002.05.23
Копирование файла на дискету