![]() |
|
![]() ![]() ![]() |
|
sanek1990 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 19.10.2009 Репутация: нет Всего: нет |
Здравствуйте! Делаю лабу по SQL. Создал БД, в ней 3 таблицы, EMPLOEES POSTS и SECTIONS. Написал приложение для работы с этой БД. так вот в чем вопрос.
Надо связать таблицу EMPLOEES (она IBTable1 на скринах) и таблицу POSTS(IBTable2) по полям Post_code = > Code Post_Code = внешний ключ для IBTable1 EMPLOEES Code = первичный ключ для POSTS(IBTable2). Итак. ![]() Далее проверяем = все работает! в таблице EMPLOEES отображаюся только персонал с выбраной должностью ![]() ![]() А вот теперь надо связать таблицу EMPLOEES и таблицу SECTIONS по полям Section_Code = внешний ключ для IBTable1 EMPLOEES Code = первичный ключ для SECTIONS а вот собственно и загвоздка ![]() Подскажите пожалуйста как тут быть, а то уже голову сломал! Может что то в корне неправильно делаю? Вот на всякий пожарный скрпиты SQL по которым содавал таблицы!
Это сообщение отредактировал(а) sanek1990 - 20.10.2009, 17:25 |
||||||
|
|||||||
Gudinya |
|
|||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 2.2.2008 Репутация: 1 Всего: 8 |
Мой совет, не пользуйся связью через мастерсурс, лучше прописывай все связи вручную, так как это даст большую гибкость и прозрачность производимых действий.
Т.е. например при действии ончендж в твоей таблицы фильтруется следующая и так далее... по крайней мере при работе с датасетами сложные связи только так и можно настроить. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
sanek1990,
картинки ещё большего не мог вставить в сообщения?? ![]() Добавлено через 1 минуту и 9 секунд sanek1990, прочитай все закреплённые темы!! http://forum.vingrad.ru/forum/Vingrad-help-center.html |
|||
|
||||
sanek1990 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 19.10.2009 Репутация: нет Всего: нет |
Прошу прощения! ![]() Добавлено через 6 минут и 29 секунд
Знать бы еще как это делать просто у меня в пояснениях к лабораторной написано как делать а там ничего про ручные связи нет...(( |
||||
|
|||||
Gudinya |
|
|||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 2.2.2008 Репутация: 1 Всего: 8 |
С interbase дело не имел, но к любому набору данных можно сделать запрос.
Для интербейза есть TIBDataSet, вот и строй таблицы на основе запросов в этих компонентах(по крайней мере я бы так делал) Когда ты выбираешь какую либо строку в гриде, проиходит смена текущего значения и в твоем набор данных, так вот при этом событии тебе нужно фильтровать другие, зависимые TIBDataSet, запросы в них должны содержать параметры, по которым ты и будешь фильтровать. Как работать с параметрами TIBDataSet должно быть в справке по делфи. Большим помочь вряд ли смогу, потому что как я уже сказал дело с интербез не имел. |
|||
|
||||
sanek1990 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 19.10.2009 Репутация: нет Всего: нет |
Спасибо, понял примерно о чем ты,попыаюсь разобратся с TIBDataSet по справке!
|
|||
|
||||
sanek1990 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 19.10.2009 Репутация: нет Всего: нет |
тему решил... ошибка не в делфи а в логике построения приложения... для того чтобы сделать три таблицы связанными, необходимо чтобы одна из таблиц не изменялась, то есть эта основная таблица не связана ни с какой другой, сортировки в ней не должно быть. в нее выводятся все записи(например весь список персонала) которые есть в БД, и уже при клике на запись в других двух гридах отображаются данные связанные с главной таблицей по ключевым полям.
Вопрос решен. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |