Главная страница
    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.45 MB
Время: 0.007 c
4-73454
АндрейК
2002-03-22 23:15
2002.05.23
API шные функции для работы с БД


3-73069
Bardel
2002-04-25 16:04
2002.05.23
Параметрическое задание таблиц


4-73448
AFROLOV
2002-03-22 10:48
2002.05.23
как полностью заблокировать приложение + очищать пока оно заблокировано его очередь сообщений?


6-73329
TAlexey
2002-01-03 16:37
2002.05.23
NMPOP3


1-73258
Filat
2002-05-10 17:59
2002.05.23
Как в *.txt файл записать и считать символы с позиции по позицию?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский