Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

связывание таблиц

8.8K
18 февраля 2007 года
opex
71 / / 17.01.2007
с++ builder 5, Ms Access
с помощью sql-запросов создаю таблицы Man и Delo.
Хочу связать их отношением "один-ко-многим".
1.Кидаю на форму ADOTable1,ADOTable2, и для них DataSource4,DataSource6.
2.Связываю эти компоненты с ADOConnection1...и т.д.Таблица Man будет master, Delo- detail.
3.Создаю для поля DetID таблицы Delo sql-запросом индекс с именем DeloIndex.
пишу нижеприведенный код
Код:
void __fastcall TForm1::Button6Click(TObject *Sender)
{
ADOTable1->TableName="Man";
ADOTable2->TableName="Delo";
ADOTable2->IndexName=("Deloindex");
ADOTable2->IndexFieldNames="DetID";
ADOTable2->MasterSource=DataSource4;
ADOTable2->MasterFields="ID";
ADOTable1->Active=true;
ADOTable2->Active=true;
}


поля по которым связываю(ID и DetID) таблицы имеют одно и то же значение(и смысл),просто они в этих таблицах названы по разному

ОШИБКА:ничего не происходит.После запуска прогаммы,открываю бд Access и вижу что в эти 2 таблицы присутствуют в "схеме данных"(окно Ms Access),НО никак не соединены между собой.

пыс:то что на писано в коде Button6Click пробовал делать визуально,то есть в Object Inspector,но результат тот же

ну что ж,help?
1
19 февраля 2007 года
kot_
7.3K / / 20.01.2000
Цитата: opex

ОШИБКА:ничего не происходит.После запуска прогаммы,открываю бд Access и вижу что в эти 2 таблицы присутствуют в "схеме данных"(окно Ms Access),НО никак не соединены между собой.


Какой жах!!!
Правда они и не должны. Потому как создание связанных наборов данных в программе, и подобие внешних ключей в Ms Access никак не связанны друг с другом.
Результатом твоих действий должно быть отображение всех записей в таблице Man и только тех записей в таблице Delo, DetID которых равен ID текущей записи таблицы Man. Только и всего.
Я же уже говорил тебе в предыдущей теме - выполни поиск в гугле по ключевому слову "архангельский" - закачай себе литературу - и тебе проще будет...

8.8K
20 февраля 2007 года
opex
71 / / 17.01.2007
и как это увидеть? В Access,если таблицы связаны,стоит нажать на плюсик в поле главной таблице и отображается дочерняя запись Я думал аналогично будет и в DBGrid Как этого добится в программе?
1
20 февраля 2007 года
kot_
7.3K / / 20.01.2000
Цитата: opex
и как это увидеть? В Access,если таблицы связаны,стоит нажать на плюсик в поле главной таблице и отображается дочерняя запись Я думал аналогично будет и в DBGrid Как этого добится в программе?


Советую тебе подумать над тем - что тебе почитать, прежде чем задать вопрос на форуме. Потому как то что ты думал пока действительности не соответствует.

1
20 февраля 2007 года
kot_
7.3K / / 20.01.2000
[SIZE="6"]{$BCB}\Examples\DBTasks[/SIZE]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог