![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
пишу диплом "электронный журнал"
есть таблицы Группы(id, name), Студенты(id, name, grupid), Предметы( id, name), Журнал(id, studentid, predmetid, data, ocenka) нужно сделать:
помогите плиз не знаю как сделать ![]() Последний раз редактировалось Hbrekk, 10.05.2012 в 11:00. |
|
#2
|
||||
|
||||
|
Когда диплом сдавать? Какая СУБД? Читай про ADO компоненты (в делфи прям такая вкладка есть). Читай про построение простейших SQL запросов.
В принципе при должном упорстве, абсолютно НИЧЕГО НЕ ЗНАЯ, все это можно реализовать за неделю-две. А вот когда у тебя появятся конкретные вопросы или проблемы с реализацией, вот тогда и обращайся сюда. Добрые люди помогут. |
|
#3
|
||||
|
||||
|
диплом в начале июня
бд сделана через бде, в основном все для диплома готово, осталось только перечисленные пункты сделать, вот на них застрял надеюсь на вашу помощь |
|
#4
|
||||
|
||||
|
используй параметризованые запросы в TQuery, свойство DataSource. при этом никакого кода писать не нужно.
|
|
#5
|
||||
|
||||
|
"по клику на группу что бы открывался список студенетов этой группы"
А где эти группы перечислены? |
|
#6
|
||||
|
||||
|
Цитата:
Группы(id, name) |
|
#7
|
||||
|
||||
|
Цитата:
|
|
#8
|
||||
|
||||
|
Цитата:
|
|
#9
|
||||
|
||||
|
И когда ты выбрал строку (например группу 2) в гриде, ты хочешь чтоб в другом гриде отобразились все студики из 2 группы?
|
|
#10
|
||||
|
||||
|
Цитата:
ну примерно так по тыку на грид , форм2 открывается , в ней грид и в этом гриде собственно студики выбранной группы отображаются |
|
#11
|
||||
|
||||
|
Для второго грида (где студики) пропиши запрос вроде этого:
Код:
select * from [Студенты] order by [name] Код:
procedure TForm1.DBGrid1CellClick(Column: TColumnEh);
begin
with TForm2.DBGrid1.DataSource.DataSet do
begin
if not Active then
Open;
Filter:= '(grupid = '+TForm1.DBGrid.DataSource.DataSet.FieldByName('id').AsString+')';
Filtered:= true;
end;
end; |
| Этот пользователь сказал Спасибо Ildar-tsr за это полезное сообщение: | ||
Hbrekk (10.05.2012)
| ||
|
#12
|
||||
|
||||
|
Только что сделал бд из 2 таблиц через BDE
Группы ( Id , Grp) Студенты ( Id, Fio, Grp) Подсоеденил Добавил на форму Query ->Params ->add item -> 'idd' также у Params ->DataType -> Integer Написал SQL запрос Код:
Select Id, Fio From Stude Where grp=:idd; Activ->true Прописал код на DBGrid1 -> OnCellClick Код:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
Query2.ParamByName('idd').Value:=DBEdit4.Text;
Query2.Open;
DBGrid4.Visible:=true;
Query2.Active:=false;
Query2.Active:=true;
end;Все замечательно работает, но когда стал аналогично делать в дипломном проекте ,при клике на группу вылетает ошибка http://s2.ipicture.ru/Gallery/Viewfull/10482455.html Понять не могу что за ошибка, раз 10 переделывал в дипломной работе все она вылетает, гугл не помог. ( |
|
#13
|
||||
|
||||
|
Ну раз idd у тебя ftInteger, то нужно наверно так:
Код:
Query2.ParamByName('idd').Value:= StrToInt(DBEdit4.Text);Код:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
if Query2.Active then //если открыт, то
Query2.Close; //закрываем
Query2.ParamByName('idd').Value:= StrToInt(DBEdit4.Text); //задаем значение параметра
Query2.Open; //получаем результат запроса
DBGrid4.Visible:=true; //отображаем грид
end; |
| Этот пользователь сказал Спасибо Ildar-tsr за это полезное сообщение: | ||
Hbrekk (10.05.2012)
| ||
|
#14
|
||||
|
||||
|
Код:
Query2.Active:=false; Query2.Active:=true; без этого бреда таблица не обновляется )) проблему решил (DBEdit4 забывал подключить) написал как описано выше Всем большое спасибо , кто давал подсказки) |