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

Вниз

Работа с БД   Найти похожие ветки 

 
Sword-Fish   (2002-12-26 12:41) [0]

Добрый день !!!
У меня очередной вопрос...
Я так и не понял !!!
У меня есть база на MS Access в ней две таблицы "Рейсы" и "Цены"
Я не могу поставить связь между этими таблицами.
Я ставлю связи прямо в Access !!!
Ставлю связь и каскадное обновление и удаление, а он пишет различные ошибки. Что-то типа "У вас должно быть равное количество полей в гл. таблице..." и т.д.
Я не понимаю что делать...
На мой вопрос уже отвечали и один сказал, что он работает (так же как и я) с ADO и Access !!!
У него сделаны связи в таблицах в самом Access и через Delphi все отлично удаляеться!!!
Хотелось бы подробнее !!!
Помогите пожалуйста !!!

Таблица "Рейсы":
Code - счетчик (ключевое поле)
Name - текстовое <<название рейса>> !!!

Таблица "Цены":
Code - счетчик (ключевое поле)
Name - текстовое <<название рейса, для того чтобы по удалению записи из табл. "Рейсы" удалялись записи с таким же названием рейса из таблицы "Цены" >> !!!
Category - текстовое
Price - денежное

Нужна помощь.........
Объясните поподробнее..... (пожалуйста)


 
Val   (2002-12-26 14:00) [1]

alter table Prices
add constraint fk_prices_name foreign key (Name)
references Flights (Name) on delete cascade
естественно, в таблице рейсов name должно иметь уникальное значение. Но лучше вместо Name держать в таблице цен FlightsCode, и соответственно построить внешний ключ.


 
Sword-Fish   (2002-12-26 18:55) [2]

Да нет вы не поняли!!!
Да я знаю там можно поставить галочку каскадное удаление, но у меня пишутся разные ошибки !!!
Как мне прямо в Aceess"е создать связи и каскадное удаление!!!
А потом через Delphi просто удалил запись а по ней удалились все записи с таким-то кодом из другой таблицы.


 
Val   (2002-12-26 19:22) [3]

тогда неверно спроектирована база, показывайте скрипты создания таблиц и приведите текст ошибок.


 
Sword-Fish   (2002-12-26 23:34) [4]

Да какие скрипты !!!
Я просто с помощью конструктора в Access построил две таблицы и все !!!
Все что мне нужно это как сделать в Access каскадное удаление...
Но удалять я буду не через Access а через Delphi !!!
А ошибки такие:
"Данные таблицы Цены нарушают условия целостности
Например, записи для сотрудника существуют в связанной но отсутсвуют в главной таблице
Измените данные чтобы главные записи существовали для всех связанных записей"


 
Val   (2002-12-27 11:47) [5]

>Sword-Fish © (26.12.02 23:34)
Да какие скрипты !!! etc.
поменьше эмоций уважаемый, я ведь не обязан вам помогать, не так ли?
Если в Access нельзя получить скрипты(в чем я отчего-то очень сомневаюсь) - я бы отошел от работы с такой СУБД - все таки нужно знать, как устроена/работает ваша база, а не просто мышкой по экрану двигать, без понятия о DDL/DML.
По теме вопроса: вам же ясно говорится, что у вас данные в таблицах нарушают ограничение, которое вы пытаетесь наложить(FK в данном случае), поэтому оно и не накладывается. Либо очистите таблицы и накладывайте ограничения, либо измените данные, дабы они удовлетворяли настраиваемому FK.


 
Валерий   (2002-12-29 18:19) [6]

Если Acces пишет ошибки при создании связи, значит что-то в Вашей базе действиельно не так. Что-то с целостностью не то и т.п. И вообще мне не понятно, почему у вас связь идет по текстовоу полю. Почему в таблице "цены" не поставить ID рейса. И.т.п.Так что думаю, что дело не в Accesse, а в том, что в Вашей базе бардак, и он правильно делает, что не хочет объединять Ваши таблицы.


 
Sword-Fish   (2002-12-29 18:42) [7]

Спасибо !!!
Я понял...



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

Форум: "Базы";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
7-72547
Геннадий
2002-11-11 16:29
2003.01.23
Как перехватить сообщение, посланное конкретному Control у?


3-72036
Delphinium
2003-01-04 22:54
2003.01.23
Составные ключи в InterBase


3-72040
Kaginava
2003-01-05 08:48
2003.01.23
IB6.5


14-72525
VJar
2003-01-05 11:30
2003.01.23
Параметр отладчика


3-72136
Darrin
2002-12-27 16:45
2003.01.23
Ошибка TDBGrid.





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