![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 16.03.2014
Сообщений: 2
|
![]()
Доброе время суток, есть проблема в создании проекта на 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; Нужна помощь, как доработать код так чтобы выводилась определённая группа, а не все подряд |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
если я правильно понял вопрос, то Вам нужно или
в ADOTable1 настроить свойство Filter и сделать Filtered := true; либо воспользоваться TADOQeury (вмето TADOTable) и прописать запрос SQL, с условием отбора нужной группы по WHERE ... Цитата:
|
|
![]() |
![]() |
![]() |
#3 | |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
![]()
Зачем выводить данные из БД в StringGrid
![]() Для вывода данных из БД есть компонент DBGrid. Подключаете его к ADOTable через компонент DataSource и весь код внутри процедуры будет не нужен. Всё делается визуально. Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 16.03.2014
Сообщений: 2
|
![]()
Я как понимаю что если использовать DBGrid оценки придётся хранить в базе данных, что приведёт к её огромному увеличению через какое то время, я знаю что делаю коряво, но пока что лишь бы работало, а там переделаю
|
![]() |
![]() |
![]() |
#5 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
а со стринггридом они будут храниться в астрале?
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Доброе время суток. Ищу совет с оптоволоконным подключением. | 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 |