Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
Саша   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-73303
JC
2002-05-09 00:12
2002.05.23
Создать TComboBox.


1-73317
Mikeee
2002-05-12 13:17
2002.05.23
Как убрать строку из ListBox-a...


3-73001
Voldemar
2002-04-25 07:39
2002.05.23
Файлы BDE


1-73144
Ferrarium
2002-05-13 15:32
2002.05.23
Помогите дописать компонент


1-73131
Explorer
2002-05-13 13:18
2002.05.23
QReport





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский