Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.12;
Скачать: CL | DM;

Вниз

Редактирование данных   Найти похожие ветки 

 
Fuelfire   (2003-05-22 11:04) [0]

Здравствуйте, специалисты! Подскажите, как решить следующую задачу.
Есть главная форма с ДБгридом. При клике по ячейке уходишь на форму редактирования конкретной записи. На этой форме надо отобразить в DBEdit"ах значения записи из главной таблицы (здесь проблем нет), а также в 2-х Гридах все записи из двух подчиненных таблиц и позиционировать индикатор Гридов на нужное значение.
Если зацепить эти Гриды на Query, то на форме редактирования при выборе строк в гриде осуществляется переход по записям. Если же зацепить Грид на соответствующие подчиненные таблицы, тогда на форме редактирования записи не отображается конкретное значение из этих таблиц: индикаторы на Гридах всегда установлены на первую запись...Что можно сделать?


 
Stas ©   (2003-05-22 11:16) [1]

А почему не использовать Query ?
А может ты неправильно связал таблицы ?


 
Sergey13 ©   (2003-05-22 11:19) [2]

2Fuelfire (22.05.03 11:04)
>а также в 2-х Гридах все записи из двух подчиненных таблиц
Все записи или нужные?
>и позиционировать индикатор Гридов на нужное значение
Не грид позиционируй а в датасете находи нужную запись, а уж грид как нибудь сам позиционируется.
>Если зацепить
Че й то я не понял про твои зацепы. Поподробнее можно?


 
Fuelfire   (2003-05-22 11:44) [3]

В общем такая ситуация.
Есть главная таблица Games: ID, Name, GenreID, Played, Developer, Net, Solution, Cheat
Есть справочник фирм Firms: ID, FirmName
Есть справочник жанров Genres: ID, GenreName
Связаны эти таблицы следующим образом Games.GenreID <-->Genres.ID; Games.Developer<-->Firms.ID
На форме редактирования надо показать все поля из таблицы Игры плюс список жанров и список фирм..В списках надо показать к какому жанру относится и кто разработчик...Вот такая постановка задачи...Так как сделал на данный момент, получается, что в 2-х гридах записи из таблиц Жанры и Игры дублируются


 
Sergey13 ©   (2003-05-22 11:59) [4]

для жанров и разработчиков (хотя зачем их редактировать?) надо (можно) в таблице игр создать лукапные поля на соответствующие справочники. И никаких дополнительных гридов. Если я правильно понял.


 
Ann ©   (2003-05-22 12:09) [5]

а текст запроса? может тогда разбиремся почему дубрируются


 
Fuelfire   (2003-05-22 12:21) [6]

SELECT Games.ID, Games.Name, Games.GenreID, Games.Played, Games.Publishier, Games.Developer, Games.GameYear, Games.Net, Games.Playability, Games.Graphics, Games.Sound, Games.Solution, Games.Cheat, Genres.GenreName, Firms.FirmName, Articles.GameID, Articles.Info
FROM "Games.DB" Games LEFT OUTER JOIN "Firms.DB" Firms on (Games.Developer = Firms.ID) LEFT OUTER JOIN "Genres.DB" Genres ON (Games.GenreID = Genres.ID)
LEFT OUTER JOIN "Articles.DB" Articles ON (Games.ID = Articles.GameID) WHERE (Name LIKE :Name_param) ORDER BY Games.Name

Дублируются они потому, что запрос вытягивает записи с помощью LIKE.... Так как допустим две игры, название которых начинается скажем на букву A могут быть одного жанра - вот уже пошло дублирование.
LIKE использую по той причине, что на главной форме находится TTreeView. Нажимаю на папку - в гриде появляются нужные записи.. Может по клику на конкретной записи вытаскивать ее Ид и формировать другой запрос?


 
Fuelfire   (2003-05-22 12:25) [7]

2Sergey13 ©
Жанры и Фирмы редактировать не надо, но надо дать возможность пользователю их менять для игр



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

Текущий архив: 2003.06.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
9-34664
Supreme
2003-01-01 00:27
2003.06.12
Как


1-34854
Екатерина
2003-05-29 12:58
2003.06.12
Утечка памяти


1-34784
_mandrake_
2003-06-02 11:25
2003.06.12
MessageDlg - без перерывов в работе?


14-34987
Style
2003-05-26 08:03
2003.06.12
Вчера смотрел новую маму и чипсет i7205


1-34787
Alexsus
2003-06-02 12:28
2003.06.12
Подскажите, при изменение размера динамического массива