![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#51 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
Дело в том, что когда я рисовал связи для таблиц, не получалось у меня тривиального(простого) решения данной задачи через главную и подчиненную таблицу. В связи с чем и возник исходник PersonalInfo2, который до этого вылаживал.
Там за основу бралась таблица Criteria, поля которой являются уникальными для каждой таблицы. Поэтому чтобы знать кому принадлежит данный критерий и для какого предмета в каком году, там введены поля IdPersonalInfo, IdPredmet, IdChetvert, idGod. в которых находятся индесы Id других таблиц. Кстати в этом случае можно обойтись и без запросов, используя метод Locate для нескольких полей.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
![]() |
![]() |
#52 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,210
|
![]()
Дык я так и не понял. Если я свяжу таблицу critery с таблицей infa по ID, то это будет неправильно?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
![]() |
![]() |
#53 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
Если получится, то связывай. Правильность на первом этапе определяется результатом работы, а уже потом оптимизацией кода.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
![]() |
![]() |
#54 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,210
|
![]()
связал таблицы критериев и инфу по ID. Вроде бы при выборе фио ученика в
таблице критериев отображаются данные для этого ученика. А если я буду данные менять для какого то ученика через dbedit, то они в базе тоже поменяются?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
![]() |
![]() |
#55 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,210
|
![]()
Вот такая ситуация возникла с БД после создания связи Master Source. Когда я в главную таблицу вношу данные ФИО для двух человек, например, Иванов_1 Иван_1 Иванович_1 и Иванов_2 Иван_2 Иванович_2 для первой четверти, и заношу их результаты по таблицам, то все нормально работает. При выборе, например, первого ученика, в других таблицах отображаются одна строка с его данными. Это правильно. Так и должно быть. Одна выбранная запись в главной таблице - по одной строке в подчиненных. Но когда я добавляю этих же учеников снова в главную таблицу, но уже, например, 2 четверть и их результаты разные, то когда я заношу эти результаты по дочерним таблицам, то получается вот что. Если я выбираю уже ранее занесенного Иванов_1, то в таблице critery у меня отображаются все данные, которые соответствуют для этого ученика. Это происходит во всех дочерних таблицах. В принципе это правильно. Если я вношу одного и того же ученика, но с разными результатами, то я и получу при его выборе в гриде все его данные, которые относятся к нему. Думаю это логично. Но последняя добавленная эта же запись, того же Иванов_1, но за другую четверть повторяется и при ее выборе не отображается строка с результатом. Все данные этого ученика отображаются только тогда, когда я выбираю запись когда первый раз еще внес. Вообщем возникла проблемка: как сделать, чтобы в главную таблицу не заносилась строка, если она уже в ней есть, но при этом данные, которые соответствуют вносимой строке отображались в дочерних таблицах? Вообщем, как сделать, чтобы не отображалась повторяющаяся строка, но остальное работало. Делать цикл на проверку уже имееющегося значения? Или как?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
![]() |
![]() |
#56 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
Насчет DBEdit я думаю, практическим путем уже убедился, что да будут тоже изменятся значение в таблице.
Про повторяющиеся значения Фамилий учеников, наверное лучше сделать проверку через метод Locate . То есть, примерно так: Код:
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
![]() |
![]() |
#57 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,210
|
![]()
И как это можно сделать?
Код:
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
![]() |
![]() |
#58 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
Примерно так
Код:
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
![]() |
![]() |
#59 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,210
|
![]()
А остальной код оставить без изменения?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
![]() |
![]() |
#60 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,210
|
![]()
А у меня же заносится не только фамилия, но имя и отчество. Могу ли я записать код таким образом:
Код:
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Связь таблиц в Database Desctop | Sergius X | БД в Delphi | 0 | 22.04.2009 16:53 |
Связь с кучей dbf файлов (таблиц) через OLEDB через UNION ALL | Sasha811 | SQL, базы данных | 0 | 01.01.2009 14:04 |
Связь таблиц в Delphi | adinadin111 | БД в Delphi | 3 | 10.07.2008 14:50 |
связь таблиц в локальной БД | IGREK | БД в Delphi | 3 | 30.06.2008 19:46 |
Связь таблиц БД | kaa | БД в Delphi | 5 | 18.09.2007 18:29 |