![]() |
|
|
![]()
|
|
| Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
Имеется вот такая таблица:
Должна быть такая форма "Журнал" где выбирают группу и семестр, а также добавляют новую сессию с экзаменами. Я могу выбрать группу и семестр, но никак не соображу как же сделать таблицу журнала. Т.е. нужна таблица где столбцы это экзамены, а строки имена студентов. |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 2 Всего: 50 |
Посмотри на стандартный компонент TDecisionCube. он позволяет делать то, что тебе нужно - разворачивать Dataset.
-------------------- |
|||
|
||||
| YurikGL |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 5.7.2005 Где: Уфа Репутация: нет Всего: 2 |
Если сервер позволяет, то можно сделать на хранимой процедуре.
--------------------
|
|||
|
||||
| Ch0bits |
|
||||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
Посмотрел... Примеров нету, доки только для отмазки.
Access Нашёл аналогичную моей тему. Там тоже шла речь про TDecisionCube, но похоже что делать всё-таки пришлось через StringGrid. Если не удасться разобраться с этим кубозверем, то буду на ходу создавать таблицу, а потом дропать её. |
||||
|
|||||
| YurikGL |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 5.7.2005 Где: Уфа Репутация: нет Всего: 2 |
Для начала, нужно определить список предметов, т.е. список столбцов. Он явно будет разным для разных семестров и групп... Потом можно попробовать написать запрос типа select StudentName, t1.rate, t2.rate, t3.rate ... from students, /* не помню как определяются псевдонимы таблиц, но t1, t2 и t3 это - рассмотренная таблица*/ where t1.id_predmet=id_predmet1, t2.id_predmet=id_predmet2, t3.id_predmet=id_predmet3 /* id_predmet1..3 это те предметы, которые мы заране определили */ Причем для каждого t1..t3 нужно будет повторить все условия, которые накладываются на всю выборку (номер семестра, группа) --------------------
|
|||
|
||||
| Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
YurikGL
Спасибо что подумал на эту тему, но я уже всё сделал. Сначала происходит добавление сессии для группы и семестра, т.е для каждого студента группы создаются предметы и ставятся начальные значения - двойки. Вот такая замарочка. |
|||
|
||||
| YurikGL |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 5.7.2005 Где: Уфа Репутация: нет Всего: 2 |
Только надо продумать механизм, что-бы несколько пользователей одновременно не создали таблицу с одним и тем же именем
--------------------
|
|||
|
||||
| YurikGL |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 5.7.2005 Где: Уфа Репутация: нет Всего: 2 |
Вообще в многопользовательской БД делать временные таблицы - неправильно.
Имена таблиц не должны повторяться. Сделать это без применения счетчиков, по меньшей мере, проблематично. Если только запрещать запуск двух клиентов с одного компьютера. Если перед drop-ем таблицы программа зависает, то времянка остается навсегда. --------------------
|
|||
|
||||
| Ch0bits |
|
||||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
Зачем же тогда придумали CREATE TEMPORARY TABLE? Раз есть надо пользоваться.
Почему остаётся? Всё равно дропнем! |
||||
|
|||||
| YurikGL |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 5.7.2005 Где: Уфа Репутация: нет Всего: 2 |
Ну да! можно! Это сообщение отредактировал(а) YurikGL - 15.12.2005, 21:14 --------------------
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |