Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Расположение компонентов на форме, Не знаю на какую таблицу мне нужно ссыла 
:(
    Опции темы
SuperLamer
Дата 20.2.2006, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ребята, подскажите, пожалуйста:
Конечная цель:
В строку запроса (Edit) вводится ФИО студента и в окне DBGrid выводится список предметов с оценками, при этом на одну ФИО все

предметы и соответствующие оценки.
Общие данные:
У меня есть три таблицы в Access 2003: Students, содержит данные о студентах (ID[ключ],
GroupNo, name,); Subjects, содержит данные о предметах (ID [ключ], name, Hours); StudentToSubject, содержит ID тех

двух+TestResult(оценки). Все таблицы объединяет схема данных, где ключи первых таблиц соединяются с соответствующими строками

общей таблицы. Клиентская часть на Delphi 7. Подключаю БД к Delphi 7 через TADOConnection. Кладу на форму компоненты

ADOTable, ADOQuery, DataSource и ADOConnection.
Проблема:
1) Не знаю на какую таблицу мне нужно ссылаться в выше перечисленных компонентах, чтобы запрос работал согласно цели.
Мой выриант:
кладу на форму три ADOTable и подключаю их соответственно к каждой таблице, 1 DataSource, и в свойстве SQL, компонента

ADOQuery прописываю три запроса к каждой - таблице.
Спасибо!
PM MAIL   Вверх
Vas
Дата 20.2.2006, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Имхо самй простой вариант:
Два DataSource, один Table и один Query. А также DBGrid и DBLookupComboBox.
В Query пишем такой запрос:
Код

select sts.testresult, st.name as fio, st.groupno, sj.name, sj.hours
from studenttosubject  sts, students st, subject sj
where sts.student_id=st.id and sts.subject_id=sj.id
and st.id=:ID

Связываем DBLooupComboBox с DataSource привязанной к таблице студентов (Table). DBGrid с Query его тоже связываем с Table через MasterSource.
И получаем при выборе в DBLookupComboBox фамилии студента в таблице видим данные с результатами по предметам.

Можно по другому например Edit + Button и Query в нем написать запрос следующего содержания:
Код

select sts.testresult, st.name as fio, st.groupno, sj.name, sj.hours
from studenttosubject  sts, students st, subject sj
where sts.student_id=st.id and sts.subject_id=sj.id
and st.name like :StudentName

и на нажатие кнопки следующий код:
Код

try
Query1.Close;
Query1.ParamByName('StudentName').AsString:=Edit1.Text+'%';
Query1.Open;
except
end;

В этом случае будут выводиться студенты с фамилиями начинающимися на строку приведенную в Edit ну и так далее, но это уже SQL.


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
sexton
Дата 20.2.2006, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sexton=Пономарь (eng)
**


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

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



Для Edit'а реализуй простой select по условию с текстом этого Edit'a из таблицы Students.
Сделай JOIN таблиц StudentToSubject и Subjects.
Свяжи их соотношением master-detail (master ессно первый запрос, detail - второй).

Единственно что хотелось бы посоветовать сделать ОБЯЗАТЕЛЬНО - изучить хелп в Access - там очень хорошее описание его SQL и куча примеров на нужные тебе темы. Не ленись, прояви настойчивость smile
Да, и запросы лучше (и удобней) перед вставкой в Delphi предварительно проверять в самом Access, через вкладку дизайнера БД "Запросы". Да и составлять их там удобнее.
PM MAIL WWW ICQ   Вверх
eXcoder
Дата 27.2.2006, 05:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



SuperLamer,

не мог бы ты показать свою схему данных.
Я выполняю подобный проект. Хотел бы посмотреть какая у тебя логика в БД.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0646 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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