Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Связь между таблицами, Delphi+ADO+Access 
:(
    Опции темы
DDX
  Дата 17.2.2005, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 31.1.2005
Где: Москва

Репутация: 5
Всего: 5



буду очень признателен за помощь

создаю базу ms access с помощью adox, как описано в drkb
создаю таблицы sql запросами

вопрос: как создать связь между таблицами, чтобы автоматически поддерживать целостность данных и каскадное удаление?

Delphi 6, к базе обращаюсь через ADO



--------------------
Учиться, учитьcя и ещё раз учиться  
PM MAIL WWW   Вверх
Dimich
Дата 17.2.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Использовать ограничения REFERENCES и FOREIGN KEY в операторе CREATE TABLE. Это обеспечит определенную ссылочную целостность. А вот насчет каскадного удаления в аксесе - то не знаю (я это обеспечиваю тригерами, которых в аксесе нет smile )
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
DDX
Дата 17.2.2005, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 31.1.2005
Где: Москва

Репутация: 5
Всего: 5



Dimich
спасибо за ответ
на sql.ru нашел, как создать связь:

one
---
o_id
o_text

many
---
m_id
o_id
m_text


ALTER TABLE many ADD CONSTRAINT FK_one_many FOREIGN KEY (o_id) REFERENCES one(o_id) ;

каскадное удаление как сделать неизвестно.. ручками наверно писать придется
--------------------
Учиться, учитьcя и ещё раз учиться  
PM MAIL WWW   Вверх
Dimich
Дата 17.2.2005, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Думаю, что в аксесе только что ручками. smile
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
DDX
Дата 17.2.2005, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 31.1.2005
Где: Москва

Репутация: 5
Всего: 5



В итоге сделал так:

...
Код

adoconnection1.execute ('create table theme (t_id integer primary key , t_name string );');

adoconnection1.execute ('create table question (q_id counter primary key , q_blob image, t_id integer, constraint fk_theme FOREIGN KEY (t_id) REFERENCES theme);');

adoconnection1.execute ('create table answer (a_id counter primary key , q_id integer, a_blob image,  constraint fk_question FOREIGN KEY (q_id) REFERENCES question on delete cascade );');

...

причем, что любопытно: access при попытке выполнить такой запрос из констуктора запросов выдает "ошибка синтаксиса в предложении constraint"

при выполнении из Дельфи все тихо и мирно


Dimich, спасибо! )

Это сообщение отредактировал(а) DDX - 17.2.2005, 15:24
--------------------
Учиться, учитьcя и ещё раз учиться  
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0427 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.