Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Вниз

как лучше сделать выбор с БД   Найти похожие ветки 

 
Gamer   (2008-07-16 11:55) [0]

Здравствуйте, ув.мастера.
Нужно написать курсовую по инфе, которая использует БД FireBird.
есть такие таблицы:

ФАКУЛЬТЕТ(F_ID, НАЗВАНИЕ)
СТУДЕНТ(S_ID, F_ID, КУРС, ГРУППА, ФАМИЛ, ИМЯ, ОТЧЕСТВО)
ПРЕДМЕТ(D_ID, НАЗВАНИЕ)
П_Ф_К(D_ID, F_ID, KURS)
TEMA(T_ID, НАЗВАНИЕ)

Суть такова - программа должна написать микро конспект по выбранной теме. Поле П_Ф_К вставил для привязки предмета к курсу и фак-ту. Буду признателен, если поправите - первый раз пишу БД.
У меня возникла проблема, когда я писал окно выбора - незнaю как сделать. Пробовал DBLookUpComboBox, но безуспешно.
На окне есть поля:

Факультет
Курс
Группа
ФИО
Предмет
Тема

Тут поля связанны должны быть. Курс и группу надо выбирать из Студент. И в этом вся суть.
Спасибо за внимание.


 
Поросенок Винни-Пух ©   (2008-07-16 12:05) [1]

не за что


 
Gamer   (2008-07-16 12:07) [2]

:) а может у кого есть другие варианты решения?


 
Sergey13 ©   (2008-07-16 12:20) [3]

> [0] Gamer   (16.07.08 11:55)
> И в этом вся суть.

Только суть какая то сумбурная, ИМХО.

> Поле П_Ф_К вставил для привязки предмета к курсу и фак-ту.

Фак-т вижу, курс - нет.
Таблица Тема вообще как то сбоку прилепилась.

ЗЫ: видимо нужно было не только гамать, но и учиться иногда.

ЗЗЫ: Ты все пела - это дело (с) Дедушка Крылов


 
oldman ©   (2008-07-16 12:22) [4]


> Суть такова - программа должна написать микро конспект по
> выбранной теме.


А почему микро?
Напишет нормальный конспект - цены ей не будет!


 
Dennis I. Komarov ©   (2008-07-16 12:23) [5]

> На окне есть поля

конопли?

Прочитай [0] и попробуй понять что от нас хочешь...


 
Gamer   (2008-07-16 12:27) [6]

Точно. в "ТЕМА" забыл D_ID.
А вопрос - как сделать чтобы...если выберу фак. то в остальных списках будут данные лишь по этому фак-ту и т.д.
Это на каждый список свой датасет и датасорс? Какими компонентами список сделать?


 
Gamer   (2008-07-16 12:29) [7]

уже написал:)


 
Dennis I. Komarov ©   (2008-07-16 12:31) [8]

> Какими компонентами список сделать?

TDataSet и онологичными + почитать основы SQL

Сюда с конкретными проблемами...


 
Dennis I. Komarov ©   (2008-07-16 12:32) [9]

> онологичными

SORRY
 аналог...


 
oldman ©   (2008-07-16 12:32) [10]


> На окне есть поля:
>
> Факультет
> Курс
> Группа


В нашем институте можно было только группу вводить.
В названии группы были и курс, и факультет. У меня была ИЗ-5. Ясно и понятно. Информатика, Заочная форма, Пятый набор.
Может и у вас так, а ты не знаешь.


 
Gamer   (2008-07-16 12:34) [11]

Лан. Спасибо за помощь.


 
oldman ©   (2008-07-16 12:35) [12]


> А вопрос - как сделать чтобы...если выберу фак. то в остальных
> списках будут данные лишь по этому фак-ту


Предмет, Тема и Курс могут быть одинаковыми для ВСЕХ факультетов.
:)
История, Английский, Философия etc. проходятся везде. Обязательный минимум, знаете ли.


 
Gamer   (2008-07-16 12:36) [13]

2 oldman
потому я и сделал таблицу П_Ф_К - чтобы можно было дописать сколько угодно связей...думал так.


 
oldman ©   (2008-07-16 12:38) [14]


> ФАКУЛЬТЕТ(F_ID, НАЗВАНИЕ)
> СТУДЕНТ(S_ID, F_ID, КУРС, ГРУППА, ФАМИЛ, ИМЯ, ОТЧЕСТВО)
> П_Ф_К(D_ID, F_ID, KURS)


Зачем три таблицы? Достаточно

СТУДЕНТ(S_ID, ФАКУЛЬТЕТ, КУРС, ГРУППА, ФАМИЛ, ИМЯ, ОТЧЕСТВО)


 
Костик   (2008-07-16 12:39) [15]


> Gamer   (16.07.08 12:27) [6]
> Точно. в "ТЕМА" забыл D_ID.
> А вопрос - как сделать чтобы...если выберу фак. то в остальных
> списках будут данные лишь по этому фак-ту и т.д.
> Это на каждый список свой датасет и датасорс? Какими компонентами
> список сделать?

Для начала чётко представь схему предметной области своей: нарисуй на бумажке таблички большими квадратиками, а в ней поля списочком. Потом проведи стрелочки от одних таблиц к другим так, чтобы начало стрелочки было напротив поля со знаком _ одной таблицы, а конец стрелочки напротив поля со знаком _ другой таблици. Это будет значить что если стрелочка идет от поля F_ID таблицы ФАКУЛЬТЕТ к полю F_ID таблицы СТУДЕНТ то значит каждому факультету соответствует ноль, один или больше студентов.
В этой всей схеме определи каким боком будет связана таблица TEMA, ну и все остальные, так чтобы каждая таблица была связана с какойто.
Когда это все сделаешь сформулируй свой вопрос еще раз.


 
Gamer   (2008-07-16 12:40) [16]

согласен, но у меня в табл. Факультеты было еще поле "Сокращенное название"


 
Gamer   (2008-07-16 12:43) [17]

Ок. Формирую еще раз.
Надо сделать само окно выбора.
Какие тут компоненты должны быть списками?
Можно ли в Query задать запрос, который бы выдал Strings?
Если нет, то какие должны быть запросы, чтобы была связь между Темой и Предметом (который в свою очередь зависит от П_Ф_К - курса и фак-та)


 
Gamer   (2008-07-16 12:43) [18]

использую FiBPlus


 
Поросенок Винни-Пух ©   (2008-07-16 13:10) [19]

Можно ли в Query задать запрос, который бы выдал Strings?

Не. Можно встряхнуться и задать в форуме внятный вопрос, который бы выдал Strings.


 
oldman ©   (2008-07-16 13:29) [20]


> Тут поля связанны должны быть. Курс и группу надо выбирать
> из Студент. И в этом вся суть.


Может наоборот?
Курсов, предположим 5.
Групп на каждом, предположим, 10.
Студентов в каждой, предположим, 25.
Итого 1250 студентов.

выбрав Курс сужаем до 250
выбрав Группу сужаем до 25
выбираем Студента из маленького списка

А то придется выбирать из полного списка, чтобы узнать курс и группу?
Бред! так преподу и передай.


 
Gamer   (2008-07-18 15:48) [21]

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.044 c
4-1194784856
Niki
2007-11-11 15:40
2008.08.24
LBN_SELCHANGE


2-1215876002
Zhekson
2008-07-12 19:20
2008.08.24
Перевернуть изображение


2-1216390303
Lines
2008-07-18 18:11
2008.08.24
Вывод текста через Canvas.TextOut


1-1197322753
Евгений
2007-12-11 00:39
2008.08.24
Сделать недоступным столбец в DBGrid


2-1216705735
Vlad Oshin
2008-07-22 09:48
2008.08.24
Смотрел DB.pas (BDS2006). Не понял.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский