Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2014, 23:15   #1
Антон 656
Новичок
Джуниор
 
Регистрация: 16.03.2014
Сообщений: 2
Восклицание Доброе время суток, есть проблема в создании проекта на Delphi.

Доброе время суток, есть проблема в создании проекта на Delphi. Проект следующий: Электронный журнал успеваемости,

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

ученики, группы. мне нужно чтобы в момент авторизации (при выборе из списка преподавателя, группы, предмета) в

StringGrid выводилась только та группа которая была выбрана. Как ученики попадают в группы, поясняю, у таблицы

группа такая структура: Id, FID, Фамилия, Имя, Отчество, комментарии. когда в справочнике регистрирую ученика, в

DBLookupComboBox выбираю ему группу и в поле FID записывается номер группы, (допустим в списке 110-П, 210-П, 310-

П, выбираем 210-П, в поле FID ученика вписывается цифра 2 т. е номер по порядку в списке) нужно чтобы в момент

авторизации выбрав из списка группу 210-П (к примеру) вывелись в stringGrid Те ученики в поле FID которых

присутствует тот самый номер 2. ..(BDGrid) не предлагайте пожалуйста.
В запросах я не силён, обязательно подучу и перейду на них, сейчас нет времени, нужно сделать до завтра, я понимаю

что делаю коряво, но пока нужно чтоб просто работало.
Вывожу студентов в StringGrid так:

procedure TForm1.Button1Click(Sender: TObject); //загрузка студентов из БД
var
i,j:integer;
b:boolean;
begin
i:=1;
ADOTable1.First;
while not ADOTable1.Eof do
begin
for j:=1 to ADOTable1.FieldCount-2 do
StringGrid1.Cells[j,i]:=ADOTable1.Fields[j+1].AsString;
i:=i+1;
ADOTable1.Next;
StringGrid1.Cells[0,0]:='№п.п.';
StringGrid1.Cells[1,0]:='Фамилия';
StringGrid1.Cells[2,0]:='Имя';
StringGrid1.Cells[3,0]:='Отчество';
StringGrid1.RowCount:=i;

Нужна помощь, как доработать код так чтобы выводилась определённая группа, а не все подряд
Изображения
Тип файла: jpg Без имени-1.jpg (116.5 Кб, 112 просмотров)
Антон 656 вне форума Ответить с цитированием
Старый 16.03.2014, 23:43   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

если я правильно понял вопрос, то Вам нужно или
в ADOTable1 настроить свойство Filter и сделать Filtered := true;

либо воспользоваться TADOQeury (вмето TADOTable) и прописать запрос SQL, с условием отбора нужной группы по WHERE ...


Цитата:
(BDGrid) не предлагайте пожалуйста.
Даже не буду спрашивать почему! Просто выскажу своё мнение: ну и зря!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.03.2014, 23:43   #3
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Зачем выводить данные из БД в StringGrid?!
Для вывода данных из БД есть компонент DBGrid. Подключаете его к ADOTable через компонент DataSource и весь код внутри процедуры будет не нужен. Всё делается визуально.
Цитата:
Нужна помощь, как доработать код так чтобы выводилась определённая группа, а не все подряд
Смотрите в сторону свойств Filter и Filtered компонента ADOTable.
Streletz вне форума Ответить с цитированием
Старый 16.03.2014, 23:50   #4
Антон 656
Новичок
Джуниор
 
Регистрация: 16.03.2014
Сообщений: 2
По умолчанию

Я как понимаю что если использовать DBGrid оценки придётся хранить в базе данных, что приведёт к её огромному увеличению через какое то время, я знаю что делаю коряво, но пока что лишь бы работало, а там переделаю
Антон 656 вне форума Ответить с цитированием
Старый 17.03.2014, 00:09   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а со стринггридом они будут храниться в астрале?
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доброе время суток. Ищу совет с оптоволоконным подключением. serjAk Компьютерное железо 3 12.05.2013 16:35
Добое время суток.... Allen Iverson Фриланс 2 25.04.2009 07:39
запрашивает ввод времени суток и в зависимости от этого выводит на экран "Доброе утро", "Добрый день". Maria, Russia Помощь студентам 5 17.02.2009 21:44
Добре время суток,камрады!!! Grundic Паскаль, Turbo Pascal, PascalABC.NET 9 26.01.2009 12:13